diff --git a/en/docs/develop/basic-design/connection/index.html b/en/docs/develop/basic-design/connection/index.html index 6ddf58c3..a220f646 100644 --- a/en/docs/develop/basic-design/connection/index.html +++ b/en/docs/develop/basic-design/connection/index.html @@ -52,7 +52,7 @@ } } }) -

Front and Back Communication

OpenSumi is meant to seperate the frontend and backend. Whether in the Web or Electron environment, the interface displayed in the browser/window is called OpenSumi frontend, while functions including file reading and writing, terminal connection and extension process are operated in the OpenSumi backend. Unlike conventional B/S or C/S architecture, the communication between the frontend and backend of OpenSumi is made by a single long link.

+

Front and Back Communication

OpenSumi is meant to seperate the frontend and backend. Whether in the Web or Electron environment, the interface displayed in the browser/window is called OpenSumi frontend, while functions including file reading and writing, terminal connection and extension process are operated in the OpenSumi backend. Unlike conventional B/S or C/S architecture, the communication between the frontend and backend of OpenSumi is made by a single long link.

In the Web environment, the frontend and the backend will build a WebSocket connection.

Web Connection

In the Electron environment, a Socket connection is built for interprocess communication(IPC)

diff --git a/en/docs/develop/basic-design/contribution-point/index.html b/en/docs/develop/basic-design/contribution-point/index.html index c62ce93a..5a311941 100644 --- a/en/docs/develop/basic-design/contribution-point/index.html +++ b/en/docs/develop/basic-design/contribution-point/index.html @@ -52,7 +52,7 @@ } } }) -

Contribution Point Mechanism

The concept of contribution point comes from a design philosophy in VS Code. By defining a basic contribution point, we can fully implement a capability and spread out the contribution point files for each submodule.

+

Contribution Point Mechanism

The concept of contribution point comes from a design philosophy in VS Code. By defining a basic contribution point, we can fully implement a capability and spread out the contribution point files for each submodule.

Samples

As there are plenty of hot keys in IDE, if a module wants to register a shortcut, it can depend on the shortcut module directly. While if the shortcut module wants to register a command, it will depend on the command module and other logical modules, which in turn makes the connection of these modules difficult to sustain.

With the contribution point mechanism, you can just execute the logic of the contribution point mechanism in the public module, and don't need to concern about the implementation details of specific shortcut keys, as shown in the figure:

diff --git a/en/docs/develop/basic-design/core-idea/index.html b/en/docs/develop/basic-design/core-idea/index.html index 5bc99b70..092d1399 100644 --- a/en/docs/develop/basic-design/core-idea/index.html +++ b/en/docs/develop/basic-design/core-idea/index.html @@ -52,7 +52,7 @@ } } }) -

Core Idea

OpenSumi is positioned as an IDE framework, on which you can build IDE products based on Cloud or Desktop. OpenSumi provides the following capabilities by default:

+

Core Idea

OpenSumi is positioned as an IDE framework, on which you can build IDE products based on Cloud or Desktop. OpenSumi provides the following capabilities by default:

  • Basic functional modules, such as FileTree, Editor, and SCM.
  • Rich customizable features, such as integration and extensions.
  • diff --git a/en/docs/develop/basic-design/core-modules/index.html b/en/docs/develop/basic-design/core-modules/index.html index ee17b75f..ea4894d6 100644 --- a/en/docs/develop/basic-design/core-modules/index.html +++ b/en/docs/develop/basic-design/core-modules/index.html @@ -52,7 +52,7 @@ } } }) -

    Core Modules

    OpenSumi warehouse code is organized through [Monorepo] (https://www.perforce.com/blog/vcs/what-monorepo), and those under packages directory are all OpenSumi built-in modules as of version 2.8.0. There are 53 modules in the OpenSumi codebase. Some of them are fully pluggable while others provide core functionality. Some early designs are unsuitable for the current architecture and may be removed or incorporated into other modules in future.

    +

    Core Modules

    OpenSumi warehouse code is organized through [Monorepo] (https://www.perforce.com/blog/vcs/what-monorepo), and those under packages directory are all OpenSumi built-in modules as of version 2.8.0. There are 53 modules in the OpenSumi codebase. Some of them are fully pluggable while others provide core functionality. Some early designs are unsuitable for the current architecture and may be removed or incorporated into other modules in future.

    Introduction to Core Modules

    OpenSumi contains dozens of modules, while you don't need to reach every module in development. In general, you should have some basic understanding on following modules.

    Core Browser

    diff --git a/en/docs/develop/basic-design/dependence-injector/index.html b/en/docs/develop/basic-design/dependence-injector/index.html index 61dffe18..a901d5b8 100644 --- a/en/docs/develop/basic-design/dependence-injector/index.html +++ b/en/docs/develop/basic-design/dependence-injector/index.html @@ -52,7 +52,7 @@ } } }) -

    Dependence Injector

    To promote developers to focus on their own modules and less-concern about the implementation details of other modules, we use @opensumi/di for dependency decoupling.

    +

    Dependence Injector

    To promote developers to focus on their own modules and less-concern about the implementation details of other modules, we use @opensumi/di for dependency decoupling.

    User Guide

    In the dependency injection coding pattern, if we want to use a service within a module, we do not need to rely on its concrete implementation, but only on the Token it displayed and declared.

    For eaxmple,IDialogService uses pop-ups services in the module:

    diff --git a/en/docs/develop/basic-design/extension-mechanism/index.html b/en/docs/develop/basic-design/extension-mechanism/index.html index 740bca6f..905904ac 100644 --- a/en/docs/develop/basic-design/extension-mechanism/index.html +++ b/en/docs/develop/basic-design/extension-mechanism/index.html @@ -52,7 +52,7 @@ } } }) -

    Extension Mechanism

    OpenSumi extension system is a superset of VS Code extensions. In addition to official VS Code APIs, we also have extended some API extensions of our own, including frontend and WebWorker extensions. This section mainly introduces the basic principle and API implementation process of OpenSumi extensions.

    +

    Extension Mechanism

    OpenSumi extension system is a superset of VS Code extensions. In addition to official VS Code APIs, we also have extended some API extensions of our own, including frontend and WebWorker extensions. This section mainly introduces the basic principle and API implementation process of OpenSumi extensions.

    Basic Principle

    OpenSumi Extension

    The preceding figure illustrates that the whole extension system involves four environments: frontend UI, Web Worker, backend main process and extension process.

    diff --git a/en/docs/develop/basic-design/lifecycle/index.html b/en/docs/develop/basic-design/lifecycle/index.html index 11d1a155..f41cf355 100644 --- a/en/docs/develop/basic-design/lifecycle/index.html +++ b/en/docs/develop/basic-design/lifecycle/index.html @@ -52,7 +52,7 @@ } } }) -

    Application Lifecycle

    In Quick Start, we create an instance of a ClientAPP and call its start mode to enable OpenSumi.

    +

    Application Lifecycle

    In Quick Start, we create an instance of a ClientAPP and call its start mode to enable OpenSumi.

    const app = new ClientAPP(/*..options*/);
     app.start();

    The Start process is simple and perceivable, mainly responsible for the following tasks:

    diff --git a/en/docs/develop/how-to-contribute/index.html b/en/docs/develop/how-to-contribute/index.html index 9027d609..57644dfd 100644 --- a/en/docs/develop/how-to-contribute/index.html +++ b/en/docs/develop/how-to-contribute/index.html @@ -52,7 +52,7 @@ } } }) -

    How To Contribute

    Generally speaking, you have many ways to help develop OpenSumi code, for example, find a bug, write it down and submit a PR (Pull Requests), or simply give a piece of advice on a feature.

    +

    How To Contribute

    Generally speaking, you have many ways to help develop OpenSumi code, for example, find a bug, write it down and submit a PR (Pull Requests), or simply give a piece of advice on a feature.

    For issue marked with PR Welcome, it is best to submit your first PR when you have any questions in the process. You can always consult any project member in the comment area by using "@" any project member.

    Prepare Development Environment

    diff --git a/en/docs/develop/how-to-design-module/index.html b/en/docs/develop/how-to-design-module/index.html index 6ae488dd..41bf1594 100644 --- a/en/docs/develop/how-to-design-module/index.html +++ b/en/docs/develop/how-to-design-module/index.html @@ -52,7 +52,7 @@ } } }) -

    How to Design Modules

    Based on the OpenSumi system, this section mainly introduces the idea of building modules, aiming to extend native framework functions. The creation of modules and specific practices can be found in our classic case, which contains basic ideas and practices to create specific modules.

    +

    How to Design Modules

    Based on the OpenSumi system, this section mainly introduces the idea of building modules, aiming to extend native framework functions. The creation of modules and specific practices can be found in our classic case, which contains basic ideas and practices to create specific modules.

    Know about Dependency Injection

    Before learning the module, we recommend you to read Dependency Injection. In OpenSumi, all service registrations and invocations are based on this unified dependency injection structure to decouple service implementation and invocation logic, allowing framework developers to focus on developing modules and achieving more independent module construction.

    What Is a Module?

    diff --git a/en/docs/develop/module-apis/decoration/index.html b/en/docs/develop/module-apis/decoration/index.html index 05d6347f..743dd380 100644 --- a/en/docs/develop/module-apis/decoration/index.html +++ b/en/docs/develop/module-apis/decoration/index.html @@ -52,7 +52,7 @@ } } }) -

    Decoration Module

    The FileDecoration module is used to register, manag or distribute filename related Decoration services.

    +

    Decoration Module

    The FileDecoration module is used to register, manag or distribute filename related Decoration services.

    Basic Concepts

    Decoration ——a decorator, a means to to "decorate" the file tree style. The following figure is a common scenario that shows Git project special decoration

    git-sample

    diff --git a/en/docs/develop/module-apis/editor/index.html b/en/docs/develop/module-apis/editor/index.html index 8181a3a8..31e701a4 100644 --- a/en/docs/develop/module-apis/editor/index.html +++ b/en/docs/develop/module-apis/editor/index.html @@ -52,7 +52,7 @@ } } }) -

    Editor Mode

    Basic Concept

    +

    Editor Mode

    Basic Concept

    The following diagram shows a complete process to open an editor tab, which can help to understand the core concepts of the editor module.

      diff --git a/en/docs/develop/module-apis/layout/index.html b/en/docs/develop/module-apis/layout/index.html index fae75b4d..1d64e688 100644 --- a/en/docs/develop/module-apis/layout/index.html +++ b/en/docs/develop/module-apis/layout/index.html @@ -52,7 +52,7 @@ } } }) -

      Layout Module

      Basic Concept

      +

      Layout Module

      Basic Concept

      The layout module(that is, @OpenSumi/IDE-main-Layout) is responsible for the basic layout of the IDE, dividing the entire window into several areas in the shape of left, main and bottom. We define those areas as slots. After we partition the layout, several large views registered to the slot are consumed through the provided slot renderer component. In special slots such as the left sidebar, a large view(called a view container) also supports registering multiple small subviews, so the final organizational relationship between the entire layout and the React view component is:

      The Organizational Relations Between Layout and View

      The views we register will end up inside the view container or sub-views. Each view will be injected with a global DI instance through the ContextProvider, and the instances of each class will be available inside the view through the useInjectable method.

      diff --git a/en/docs/develop/module-apis/overlay/index.html b/en/docs/develop/module-apis/overlay/index.html index dca33aba..671dc4cb 100644 --- a/en/docs/develop/module-apis/overlay/index.html +++ b/en/docs/develop/module-apis/overlay/index.html @@ -52,7 +52,7 @@ } } }) -

      Overlay Module

      Overlay modules are the covering modules on the IDE, such as Dialog and Message modules. You can use this module when you need to notify the user of a message from the IDE or when you need a modal dialog box to interact with the user.

      +

      Overlay Module

      Overlay modules are the covering modules on the IDE, such as Dialog and Message modules. You can use this module when you need to notify the user of a message from the IDE or when you need a modal dialog box to interact with the user.

      Message

      Message will pop up a prompt in the lower right corner of the IDE.

      message

      diff --git a/en/docs/develop/module-apis/preference/index.html b/en/docs/develop/module-apis/preference/index.html index c5251fe4..cb43a52e 100644 --- a/en/docs/develop/module-apis/preference/index.html +++ b/en/docs/develop/module-apis/preference/index.html @@ -52,7 +52,7 @@ } } }) -

      Preference Module

      The Preferences module is used to process the reading logic of the entire IDE configuration, including color theme, icon theme, automatic save, and so on.

      +

      Preference Module

      The Preferences module is used to process the reading logic of the entire IDE configuration, including color theme, icon theme, automatic save, and so on.

      Storage Paths

      The directory location of the configuration file can be read by passing userPreferenceDirName and workspacePreferenceDirName to settings.json when configuring AppConfig for global configuration and workspace configuration, respectively.

      diff --git a/en/docs/develop/module-samples/index.html b/en/docs/develop/module-samples/index.html index 01070360..b4ec94ba 100644 --- a/en/docs/develop/module-samples/index.html +++ b/en/docs/develop/module-samples/index.html @@ -52,7 +52,7 @@ } } }) -

      Module Samples

      We officially provide a case repository for module expansion opensumi-module-samples. You can learn the following contents in the template repository:

      +

      Module Samples

      We officially provide a case repository for module expansion opensumi-module-samples. You can learn the following contents in the template repository:

      diff --git a/en/docs/develop/sample/connection-between-browser-and-node/index.html b/en/docs/develop/sample/connection-between-browser-and-node/index.html index 507f73db..090b8657 100644 --- a/en/docs/develop/sample/connection-between-browser-and-node/index.html +++ b/en/docs/develop/sample/connection-between-browser-and-node/index.html @@ -52,7 +52,7 @@ } } }) -

      Front-end and Back-end Connection Implementation

      To implement two-way communication between the frontend and the backend, we rely on special service declarations of BrowserModule and NodeModule.

      +

      Front-end and Back-end Connection Implementation

      To implement two-way communication between the frontend and the backend, we rely on special service declarations of BrowserModule and NodeModule.

      First of all, you need to define a single channel for two-way communication message. We define a ITodoConnectionServerPath as the only ID message channel. Frontend and backend distributes the service through the channel.

      export const ITodoConnectionServerPath = 'ITodoConnectionServerPath';

      Associate Front-end and Back-end Services

      diff --git a/en/docs/develop/sample/create-module/index.html b/en/docs/develop/sample/create-module/index.html index 64f142b0..47ef3df6 100644 --- a/en/docs/develop/sample/create-module/index.html +++ b/en/docs/develop/sample/create-module/index.html @@ -52,7 +52,7 @@ } } }) -

      Create Module

      Because the OpenSumi module does not run independently, we recommend you create your module directory outside the project directory when creating the module. Taking the template repository provided by Quick Start as an example, you can quickly start an IDE project:

      +

      Create Module

      Because the OpenSumi module does not run independently, we recommend you create your module directory outside the project directory when creating the module. Taking the template repository provided by Quick Start as an example, you can quickly start an IDE project:

      $ git clone git@github.com:opensumi/ide-startup.git
       $ cd ide-startup
       $ yarn					   # Install dependencies  
      diff --git a/en/docs/develop/sample/display-list/index.html b/en/docs/develop/sample/display-list/index.html
      index de6b4b47..52cc3ee4 100644
      --- a/en/docs/develop/sample/display-list/index.html
      +++ b/en/docs/develop/sample/display-list/index.html
      @@ -52,7 +52,7 @@
               }
             }
           })
      -  

      Display List

      To reach a list of high performance, we usually need some three-party libraries to implement it. However, we have established a number of common components in @opensumi/ide-components under OpenSumi, and we will show how to render our TodoList list with these components.

      +

      Display List

      To reach a list of high performance, we usually need some three-party libraries to implement it. However, we have established a number of common components in @opensumi/ide-components under OpenSumi, and we will show how to render our TodoList list with these components.

      Data Structure

      In panels registered by IMainLayoutService service, components render with a default viewState property, from which you can get the width and height of the entire panel.

      export interface ITodo {
      diff --git a/en/docs/develop/sample/overview/index.html b/en/docs/develop/sample/overview/index.html
      index 4063390f..685fbeb9 100644
      --- a/en/docs/develop/sample/overview/index.html
      +++ b/en/docs/develop/sample/overview/index.html
      @@ -52,7 +52,7 @@
               }
             }
           })
      -  

      Case Introduction

      This case teaches you how to develop your own modules from scratch, step by step, by implementing a TodoList list in OpenSumi, and by this case you will gain some knowledge:

      +

      Case Introduction

      This case teaches you how to develop your own modules from scratch, step by step, by implementing a TodoList list in OpenSumi, and by this case you will gain some knowledge:

      • How to create a module.
      • How to present a list.
      • diff --git a/en/docs/develop/sample/use-contribution-point/index.html b/en/docs/develop/sample/use-contribution-point/index.html index cca6f3b7..88dbe076 100644 --- a/en/docs/develop/sample/use-contribution-point/index.html +++ b/en/docs/develop/sample/use-contribution-point/index.html @@ -52,7 +52,7 @@ } } }) -

        Use Contribution Point

        In module development, You may need to deal with contribution points on a regular basis. In OpenSumi we implement a contribution point mechanism for many key logics. For more details, you can see contribution points.

        +

        Use Contribution Point

        In module development, You may need to deal with contribution points on a regular basis. In OpenSumi we implement a contribution point mechanism for many key logics. For more details, you can see contribution points.

        To register our TodoList list on the left Explorer panel, we need to use the MainLayoutContribution to register the panel.

        Create a Front View

        First, the following code shows a simple front-end presentation component:

        diff --git a/en/docs/develop/sample/use-service-by-di/index.html b/en/docs/develop/sample/use-service-by-di/index.html index b87a6666..d10bafa5 100644 --- a/en/docs/develop/sample/use-service-by-di/index.html +++ b/en/docs/develop/sample/use-service-by-di/index.html @@ -52,7 +52,7 @@ } } }) -

        Register and Use the service by DI

        DI (Dependency Injection) is one of the core mechanisms of OpenSumi framework. By using DI, we can easily achieve the decoupling of dependencies and reuse of services. For more details, please see Dependency Injection .

        +

        Register and Use the service by DI

        DI (Dependency Injection) is one of the core mechanisms of OpenSumi framework. By using DI, we can easily achieve the decoupling of dependencies and reuse of services. For more details, please see Dependency Injection .

        This section will start from use cases. Rgister ITodoService service When you are using the IMessageService service offered by the framework. Todo items switch state to display handover information.

        Registration Service

        Declare ITodoService service interface:

        diff --git a/en/docs/extension/contributes/toolbar/index.html b/en/docs/extension/contributes/toolbar/index.html index a48fea46..64e512d0 100644 --- a/en/docs/extension/contributes/toolbar/index.html +++ b/en/docs/extension/contributes/toolbar/index.html @@ -277,6 +277,7 @@

        // browser/index.ts
         import * as React from 'react';
         import { useEffect } from 'react';
        +import { commands } from 'kaitian-browser';
         
         export const CustomPopover = props => {
           useEffect(() => {
        @@ -289,15 +290,32 @@ 

        return ( <div style={{ width: 200, height: 200, padding: 10 }}> Hello {props.context?.name} + <button + onClick={() => { + commands.executeCommand('popup.testCommand'); + }} + > + Execute Command + </button> </div> ); };

        In this code, a context object can be obtained from props, and the context can be dynamically updated by calling actionHandler API from the plug-in Node side.

        +

        The Popover can obtain the state passed in by NodeJS from props.context, and it can also use commands.executeCommand to invoke the Commands registered in NodeJS.

        // node/index.ts
         export function activate() {
           const action = await kaitian.toolbar.getToolbarActionButtonHandle(
             'sample-start'
           );
        +
        +  kaitian.commands.registerCommand('popup.testCommand', () => {
        +    console.log('command executed');
        +  });
        +
        +  action.onClick(() => {
        +    action.showPopover();
        +  });
        +
           setInterval(() => {
             action.setContext({
               // Update context value regularly
        diff --git a/page-data/en/docs/develop/basic-design/connection/page-data.json b/page-data/en/docs/develop/basic-design/connection/page-data.json
        index 65837090..7b79a432 100644
        --- a/page-data/en/docs/develop/basic-design/connection/page-data.json
        +++ b/page-data/en/docs/develop/basic-design/connection/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/connection","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is meant to seperate the frontend and backend. Whether in the Web or Electron environment, the interface displayed in the browser/window is called OpenSumi frontend, while functions including file reading and writing, terminal connection and extension process are operated in the OpenSumi backend. Unlike conventional B/S or C/S architecture, the communication between the frontend and backend of OpenSumi is made by a single long link."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the Web environment, the frontend and the backend will build a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"WebSocket"}]},{"type":"text","value":" connection."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01QiEuJD1QeVE2NkPMY_!!6000000002001-55-tps-182-243.svg","alt":"Web Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the Electron environment, a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Socket "}]},{"type":"text","value":"connection is built for interprocess communication(IPC)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01zDX6Wg1tjeXHaqyjQ_!!6000000005938-55-tps-232-242.svg","alt":"Electron Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"basic-principle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-principle","ariaLabel":"basic principle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Principle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Our core functional code can be reused in the Web/Electron environment, and any frontend/backend interactions are consistent in interface and usage, since the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"connection"}]},{"type":"text","value":" module of OpenSumi shields most of the differences between platforms and underlying communications protocols. Based on "},{"type":"element","tagName":"a","properties":{"href":"https://www.jsonrpc.org/specification","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"JSON-RPC 2.0"}]},{"type":"text","value":", the connection module implements a RPC framework. The framework encapsulates the communication process between the Web and the Electron side by the RPC protocol. In this way, the difference is very small for integration users."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A RPC call inside OpenSumi will interpret the basics of frontend and backend communication:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// frontend"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMyService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BackServicePath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"doSomeThing"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Back End"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BackService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IBackService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ILocalData"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" data "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This is a common example in OpenSumi. Generally, the backend is responsible to implement specific functions, while the frontend fetchs data or performs some operations (usually involving IO or process operations) through RPC calls. In this case, the frontend uses DI to inject "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BackServicePath"}]},{"type":"text","value":". In fact, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BackServicePath"}]},{"type":"text","value":" is a string. It is injected into the frontend as a Token through DI, but implemented as a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Proxy"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A front-end call to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"$getSomelocalData"}]},{"type":"text","value":" method is wrapped as a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Promise"}]},{"type":"text","value":" during communication. The backend will process and return it directly , while the underlying implementation wraps the return value as the request result and sends it to the frontend by using a unique ID, so the RPC call is finished. In addition to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Request"}]},{"type":"text","value":",  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Notification"}]},{"type":"text","value":" is also employed in individual notifications, the difference being that the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Notification"}]},{"type":"text","value":" has no return value."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// when calling $getSomeLocalData"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// pseudocode implementation"}]},{"type":"text","value":"\nmyBackService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Proxy"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"target"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" prop"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"prop "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'$getSomeLocalData'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"args"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resolve"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" reject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// \"Connection\" means the connection between the front and back ends"}]},{"type":"text","value":"\n            connection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sendRequest"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"prop"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"args"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" response "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// \"Promise resolve\" will return the result after the request returned"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"resolve"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"response"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"channel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#channel","ariaLabel":"channel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Channel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For multiple windows scenarios, each window establishes a long connection to the Server side. To distinguish these windows, each connection communicates by a seperate "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Channel"}]},{"type":"text","value":", and The communication content between Windows is completely isolated."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01aN1VYn1dkzqWPK2ev_!!6000000003775-55-tps-825-362.svg","alt":"Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to the common "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"frontend-> backend-"}]},{"type":"text","value":" mode, OpenSumi also supports "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"backend-> frontend-"}]},{"type":"text","value":" call. For specific examples of backend communication, see "},{"type":"element","tagName":"a","properties":{"href":"../sample/connection-between-browser-and-node"},"children":[{"type":"text","value":"Examples of frontend and backend communication"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication"},"parent":{"relativePath":"develop/basic-design/connection.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/connection","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is meant to seperate the frontend and backend. Whether in the Web or Electron environment, the interface displayed in the browser/window is called OpenSumi frontend, while functions including file reading and writing, terminal connection and extension process are operated in the OpenSumi backend. Unlike conventional B/S or C/S architecture, the communication between the frontend and backend of OpenSumi is made by a single long link."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the Web environment, the frontend and the backend will build a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"WebSocket"}]},{"type":"text","value":" connection."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01QiEuJD1QeVE2NkPMY_!!6000000002001-55-tps-182-243.svg","alt":"Web Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the Electron environment, a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Socket "}]},{"type":"text","value":"connection is built for interprocess communication(IPC)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01zDX6Wg1tjeXHaqyjQ_!!6000000005938-55-tps-232-242.svg","alt":"Electron Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"basic-principle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-principle","ariaLabel":"basic principle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Principle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Our core functional code can be reused in the Web/Electron environment, and any frontend/backend interactions are consistent in interface and usage, since the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"connection"}]},{"type":"text","value":" module of OpenSumi shields most of the differences between platforms and underlying communications protocols. Based on "},{"type":"element","tagName":"a","properties":{"href":"https://www.jsonrpc.org/specification","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"JSON-RPC 2.0"}]},{"type":"text","value":", the connection module implements a RPC framework. The framework encapsulates the communication process between the Web and the Electron side by the RPC protocol. In this way, the difference is very small for integration users."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A RPC call inside OpenSumi will interpret the basics of frontend and backend communication:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// frontend"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMyService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BackServicePath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"doSomeThing"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Back End"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BackService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IBackService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ILocalData"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" data "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This is a common example in OpenSumi. Generally, the backend is responsible to implement specific functions, while the frontend fetchs data or performs some operations (usually involving IO or process operations) through RPC calls. In this case, the frontend uses DI to inject "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BackServicePath"}]},{"type":"text","value":". In fact, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BackServicePath"}]},{"type":"text","value":" is a string. It is injected into the frontend as a Token through DI, but implemented as a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Proxy"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A front-end call to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"$getSomelocalData"}]},{"type":"text","value":" method is wrapped as a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Promise"}]},{"type":"text","value":" during communication. The backend will process and return it directly , while the underlying implementation wraps the return value as the request result and sends it to the frontend by using a unique ID, so the RPC call is finished. In addition to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Request"}]},{"type":"text","value":",  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Notification"}]},{"type":"text","value":" is also employed in individual notifications, the difference being that the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Notification"}]},{"type":"text","value":" has no return value."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// when calling $getSomeLocalData"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// pseudocode implementation"}]},{"type":"text","value":"\nmyBackService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Proxy"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"target"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" prop"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"prop "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'$getSomeLocalData'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"args"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resolve"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" reject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// \"Connection\" means the connection between the front and back ends"}]},{"type":"text","value":"\n            connection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sendRequest"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"prop"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"args"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" response "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// \"Promise resolve\" will return the result after the request returned"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"resolve"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"response"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"channel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#channel","ariaLabel":"channel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Channel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For multiple windows scenarios, each window establishes a long connection to the Server side. To distinguish these windows, each connection communicates by a seperate "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Channel"}]},{"type":"text","value":", and The communication content between Windows is completely isolated."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01aN1VYn1dkzqWPK2ev_!!6000000003775-55-tps-825-362.svg","alt":"Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to the common "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"frontend-> backend-"}]},{"type":"text","value":" mode, OpenSumi also supports "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"backend-> frontend-"}]},{"type":"text","value":" call. For specific examples of backend communication, see "},{"type":"element","tagName":"a","properties":{"href":"../sample/connection-between-browser-and-node"},"children":[{"type":"text","value":"Examples of frontend and backend communication"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication"},"parent":{"relativePath":"develop/basic-design/connection.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/basic-design/contribution-point/page-data.json b/page-data/en/docs/develop/basic-design/contribution-point/page-data.json
        index 77e939ea..aba67838 100644
        --- a/page-data/en/docs/develop/basic-design/contribution-point/page-data.json
        +++ b/page-data/en/docs/develop/basic-design/contribution-point/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/contribution-point","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The concept of contribution point comes from a design philosophy in VS Code. By defining a basic contribution point, we can fully implement a capability and spread out the contribution point files for each submodule."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"samples","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#samples","ariaLabel":"samples permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Samples"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As there are plenty of hot keys in IDE, if a module wants to register a shortcut, it can depend on the shortcut module directly. While if the shortcut module wants to register a command, it will depend on the command module and other logical modules, which in turn makes the connection of these modules difficult to sustain."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"contribution point"}]},{"type":"text","value":" mechanism, you can just execute the logic of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"contribution point"}]},{"type":"text","value":" mechanism in the public module, and don't need to concern about the implementation details of specific shortcut keys, as shown in the figure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0106jNQW1fyOfEae2Hd_!!6000000004075-2-tps-2146-1048.png","alt":"Example"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"frequently-used-contribution-points","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#frequently-used-contribution-points","ariaLabel":"frequently used contribution points permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Frequently-used Contribution Points"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Usually when using contribution points to run corresponding functions, you need to declare them inside the module and bring them into the integration side to take effect. The following is a basic declaration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    DemoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Following cases will not repeat the way to introduce a contribution point file."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"lifecyle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#lifecyle","ariaLabel":"lifecyle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Lifecyle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To perform some given logic during the lanuch of application "},{"type":"element","tagName":"a","properties":{"href":"./lifecycle"},"children":[{"type":"text","value":"Lifecyle"}]},{"type":"text","value":", you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" contribution point to mount different \"hook\" functions during the applicationlifecycle to perform specific logic operations, just as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" ClientAppContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ClientAppContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"initialize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed during initialization phase"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onStart"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed during application startup phase"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidStart"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed during most module startup completion phases"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onWillStop"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed just before the application is to shut down. If returned \"true\", the shutdown will be interrupted  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onStop"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed in shutdown phase"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDisposeSideEffects"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Different from onStop, the latter is only suitable for non-obstructive work  "}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// onDisposeEffect is suitable for some long, obstructive tasks, targeting at scenarios where the IDE is gracefully unloaded as a large component  "}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// But the onDisposeEffect may block window close under Electron (for example, it takes more than 1s to close)   "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onReconnect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed during extension process restart"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"command-register","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#command-register","ariaLabel":"command register permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Command Register"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The contribution point of command registration is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":", through which you can register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.command.test'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test command'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"preference-register","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#preference-register","ariaLabel":"preference register permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Preference Register"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The contribution point for preference registration is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":", through which we can register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Preference"}]},{"type":"text","value":", just as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'typescript'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo language type'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more detailed preference and usage, see "},{"type":"element","tagName":"a","properties":{"href":"../module-apis/preference"},"children":[{"type":"text","value":"Preference Module"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"keybinding-registration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#keybinding-registration","ariaLabel":"keybinding registration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Keybinding Registration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The contribution point of the Keybinding registration is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":", through which you can register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keybinding"}]},{"type":"text","value":", using the following method:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" quickFileOpen"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ctrlcmd+p'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"right-menu-contribution","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#right-menu-contribution","ariaLabel":"right menu contribution permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Right Menu Contribution"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The contribution point of right click registration is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":". you can register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Menu"}]},{"type":"text","value":" through this contribution point as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// register a first level menu"}]},{"type":"text","value":"\n    menus"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"DebugBreakpointsContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Debug'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"999"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// register an item under the menu"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"DebugBreakpointsContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug.breakpoint.delete'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Delete Breakpoint'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_has_breakpoint'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register submenu"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" menuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" subMenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more/items'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Bind the second-level menu to a first-level menu item"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      submenu"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" subMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'More Settings'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// register submenu contents"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"subMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more.setting'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By default, the framework enrolls totally 53 registered locations in the right menu, as can be seen in the definition of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"user-defined-protocol-files","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-defined-protocol-files","ariaLabel":"user defined protocol files permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User-defined Protocol Files"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi, we obtain the corresponding file service through the DI Token of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IFileServiceClient"}]},{"type":"text","value":" for file reading and writting. In terms of some scenarioalized file content, we usually employ user-defined protocol header to read such content, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"To read user configuration files, please use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"user_stroage://settings.json"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"To read virtual files in Debugging process, please use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debug://{filename}"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We have made this function possible by the contribution point of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"FsProviderContribution"}]},{"type":"text","value":", just as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  FsProviderContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IUserStorageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"FileSystemProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserStorageProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IUserStorageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// implement the protocol"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FsProviderContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"FsProviderContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'user_storage'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserStorageProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism"},"parent":{"relativePath":"develop/basic-design/contribution-point.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/contribution-point","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The concept of contribution point comes from a design philosophy in VS Code. By defining a basic contribution point, we can fully implement a capability and spread out the contribution point files for each submodule."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"samples","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#samples","ariaLabel":"samples permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Samples"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As there are plenty of hot keys in IDE, if a module wants to register a shortcut, it can depend on the shortcut module directly. While if the shortcut module wants to register a command, it will depend on the command module and other logical modules, which in turn makes the connection of these modules difficult to sustain."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"contribution point"}]},{"type":"text","value":" mechanism, you can just execute the logic of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"contribution point"}]},{"type":"text","value":" mechanism in the public module, and don't need to concern about the implementation details of specific shortcut keys, as shown in the figure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0106jNQW1fyOfEae2Hd_!!6000000004075-2-tps-2146-1048.png","alt":"Example"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"frequently-used-contribution-points","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#frequently-used-contribution-points","ariaLabel":"frequently used contribution points permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Frequently-used Contribution Points"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Usually when using contribution points to run corresponding functions, you need to declare them inside the module and bring them into the integration side to take effect. The following is a basic declaration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    DemoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Following cases will not repeat the way to introduce a contribution point file."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"lifecyle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#lifecyle","ariaLabel":"lifecyle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Lifecyle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To perform some given logic during the lanuch of application "},{"type":"element","tagName":"a","properties":{"href":"./lifecycle"},"children":[{"type":"text","value":"Lifecyle"}]},{"type":"text","value":", you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" contribution point to mount different \"hook\" functions during the applicationlifecycle to perform specific logic operations, just as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" ClientAppContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ClientAppContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"initialize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed during initialization phase"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onStart"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed during application startup phase"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidStart"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed during most module startup completion phases"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onWillStop"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed just before the application is to shut down. If returned \"true\", the shutdown will be interrupted  "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onStop"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed in shutdown phase"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDisposeSideEffects"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Different from onStop, the latter is only suitable for non-obstructive work  "}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// onDisposeEffect is suitable for some long, obstructive tasks, targeting at scenarios where the IDE is gracefully unloaded as a large component  "}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// But the onDisposeEffect may block window close under Electron (for example, it takes more than 1s to close)   "}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onReconnect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This function is executed during extension process restart"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"command-register","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#command-register","ariaLabel":"command register permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Command Register"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The contribution point of command registration is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":", through which you can register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.command.test'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test command'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"preference-register","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#preference-register","ariaLabel":"preference register permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Preference Register"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The contribution point for preference registration is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":", through which we can register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Preference"}]},{"type":"text","value":", just as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'typescript'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo language type'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more detailed preference and usage, see "},{"type":"element","tagName":"a","properties":{"href":"../module-apis/preference"},"children":[{"type":"text","value":"Preference Module"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"keybinding-registration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#keybinding-registration","ariaLabel":"keybinding registration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Keybinding Registration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The contribution point of the Keybinding registration is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":", through which you can register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keybinding"}]},{"type":"text","value":", using the following method:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" quickFileOpen"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ctrlcmd+p'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"right-menu-contribution","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#right-menu-contribution","ariaLabel":"right menu contribution permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Right Menu Contribution"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The contribution point of right click registration is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":". you can register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Menu"}]},{"type":"text","value":" through this contribution point as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// register a first level menu"}]},{"type":"text","value":"\n    menus"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"DebugBreakpointsContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Debug'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"999"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// register an item under the menu"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"DebugBreakpointsContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug.breakpoint.delete'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Delete Breakpoint'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_has_breakpoint'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register submenu"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" menuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" subMenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more/items'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Bind the second-level menu to a first-level menu item"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      submenu"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" subMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'More Settings'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// register submenu contents"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"subMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more.setting'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By default, the framework enrolls totally 53 registered locations in the right menu, as can be seen in the definition of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"user-defined-protocol-files","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-defined-protocol-files","ariaLabel":"user defined protocol files permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User-defined Protocol Files"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi, we obtain the corresponding file service through the DI Token of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IFileServiceClient"}]},{"type":"text","value":" for file reading and writting. In terms of some scenarioalized file content, we usually employ user-defined protocol header to read such content, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"To read user configuration files, please use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"user_stroage://settings.json"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"To read virtual files in Debugging process, please use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debug://{filename}"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We have made this function possible by the contribution point of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"FsProviderContribution"}]},{"type":"text","value":", just as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  FsProviderContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IUserStorageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"FileSystemProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserStorageProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IUserStorageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// implement the protocol"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FsProviderContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"FsProviderContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'user_storage'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserStorageProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism"},"parent":{"relativePath":"develop/basic-design/contribution-point.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/basic-design/core-idea/page-data.json b/page-data/en/docs/develop/basic-design/core-idea/page-data.json
        index ef7b79ef..7ece0ee6 100644
        --- a/page-data/en/docs/develop/basic-design/core-idea/page-data.json
        +++ b/page-data/en/docs/develop/basic-design/core-idea/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/core-idea","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is positioned as an "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IDE framework"}]},{"type":"text","value":", on which you can build IDE products based on Cloud or Desktop. OpenSumi provides the following capabilities by default:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Basic functional modules, such as FileTree, Editor, and SCM."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Rich customizable features, such as integration and extensions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Compatible with VS Code extension system, supporting mainstream protocols, such as LSP and DAP."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In contrast, OpenSumi does not provide the following capabilities for some ends currently."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Container/VM management in Cloud IDE"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Window management in Desktop IDE"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following is a list of common concepts, terms and explanations you may find in OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module","ariaLabel":"module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi's offerings are NPM packages from different modules. Each package is a "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"module"}]},{"type":"text","value":" and deals with different functions. Modules are generally composed of several parts: frontend, backend, public code and type. The following code is a common module structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── README.md\n├── __tests__\n│   ├── browser\n│   ├── common\n│   ├── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n├── package.json\n├── src\n│   ├── browser\n│   ├── common\n│   ├── index.ts\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── webpack.config.js"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"responsibilities-of-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#responsibilities-of-module","ariaLabel":"responsibilities of module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Responsibilities of Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In general, modules provide some basic functions. For example, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" module performs a full-text search, where the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/browser"}]},{"type":"text","value":" directory includes UI-related code in frontend, while the search is performed by the code under the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/node"}]},{"type":"text","value":" directory."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The frontend communicates with backend via RPC, which is no much difference from calling an asynchronous method, so you don't need to concern about communication details, just refer to the existing pattern to organize the code. You can see "},{"type":"element","tagName":"a","properties":{"href":"./connection"},"children":[{"type":"text","value":"frontend and backend communication"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"None of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/node/common"}]},{"type":"text","value":" is a necessity in the module code. Modules that are providing frontend UI or backend functionalities only are allowed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A module can provide Contribution to another, and other one in turn can register contribution points based on the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ContributionProvider"}]},{"type":"text","value":" declared by that module. The contribution point mechanism is mainly used in scenarios where modules provide registration capabilities to other modules. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-layout"}]},{"type":"text","value":" provides component-level contribution points, while other modules can freely assemble IDE interfaces by registering components with Layout's capabilities, and menu modules provide contribution points for registering menus."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"module-layer-and-dependencies","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module-layer-and-dependencies","ariaLabel":"module layer and dependencies permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module Layer and Dependencies"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We divide the modules into"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" core modules"}]},{"type":"text","value":" and"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" functional modules"}]},{"type":"text","value":". Modules have certain dependency relations. Taking "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":" as an example, a typical module inclues file reading and writing, file system registration and management. In many functional modules, to read and write operations will depend on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Core modules are mandatory that make up the core functionality of the IDE and cannot be removed. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-layout"}]},{"type":"text","value":" is responsible for the overall layout of the main interface and view registration, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-node"}]},{"type":"text","value":" are responsible for maintaining the declaration cycle of IDE ClientApp and ServerApp instances and related contribution point management."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Functional modules are generally pluggable, which means that they can be removed from the integration code or replaced without affecting other functions. However, the removal of some modules with extension API will lead the extension malfunctioning, because "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Extension"}]},{"type":"text","value":" relies on most of the functional modules to provide APIs. The following modules are the currently pluggable:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Outline"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"File-search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Terminal-next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Comments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Opened-editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"dependency-injection","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dependency-injection","ariaLabel":"dependency injection permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By a self-developed DI framework "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":", OpenSumi manages and acquires instances among these modules, and the dependency abstraction interface convention allows us to easily overlap part of the service or even the module implementation to improve extensibility. For more details on the usage of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":", see "},{"type":"element","tagName":"a","properties":{"href":"./dependence-injector"},"children":[{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":", or visit the source code at "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/di"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-and-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-and-api","ariaLabel":"extension and api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension and API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As mentioned before, many of OpenSumi's functional modules are pluggable, and those cannot be plugged is because they provide extension APIs (in other words, they can be pluggable after the Extension module is removed). OpenSumi extension system is based on the extension of VS Code, which can be regarded as a superset of VS Code extensions. For detailed introduction of the extension system, see "},{"type":"element","tagName":"a","properties":{"href":"./extension-mechanism"},"children":[{"type":"text","value":"Extension Mechanism"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi extension is similar to the VS Code extensions. We will keep its compatibility with the VS Code extension API, and constantly update and iterate the extension API. The extension API is a collection of objects, such as methods and classes, offered to third-party code to call . Extension modules contains all extensions and extension API-related implementations, but when it comes to a certain extension API, the ultimately called module is the one implemented them. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal-next"}]},{"type":"text","value":" module offers "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.window.createTerminal"}]},{"type":"text","value":" capability, while the extension just takes its package for the plug-in to call."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea"},"parent":{"relativePath":"develop/basic-design/core-idea.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/core-idea","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is positioned as an "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IDE framework"}]},{"type":"text","value":", on which you can build IDE products based on Cloud or Desktop. OpenSumi provides the following capabilities by default:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Basic functional modules, such as FileTree, Editor, and SCM."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Rich customizable features, such as integration and extensions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Compatible with VS Code extension system, supporting mainstream protocols, such as LSP and DAP."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In contrast, OpenSumi does not provide the following capabilities for some ends currently."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Container/VM management in Cloud IDE"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Window management in Desktop IDE"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following is a list of common concepts, terms and explanations you may find in OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module","ariaLabel":"module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi's offerings are NPM packages from different modules. Each package is a "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"module"}]},{"type":"text","value":" and deals with different functions. Modules are generally composed of several parts: frontend, backend, public code and type. The following code is a common module structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── README.md\n├── __tests__\n│   ├── browser\n│   ├── common\n│   ├── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n├── package.json\n├── src\n│   ├── browser\n│   ├── common\n│   ├── index.ts\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── webpack.config.js"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"responsibilities-of-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#responsibilities-of-module","ariaLabel":"responsibilities of module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Responsibilities of Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In general, modules provide some basic functions. For example, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" module performs a full-text search, where the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/browser"}]},{"type":"text","value":" directory includes UI-related code in frontend, while the search is performed by the code under the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/node"}]},{"type":"text","value":" directory."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The frontend communicates with backend via RPC, which is no much difference from calling an asynchronous method, so you don't need to concern about communication details, just refer to the existing pattern to organize the code. You can see "},{"type":"element","tagName":"a","properties":{"href":"./connection"},"children":[{"type":"text","value":"frontend and backend communication"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"None of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/node/common"}]},{"type":"text","value":" is a necessity in the module code. Modules that are providing frontend UI or backend functionalities only are allowed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A module can provide Contribution to another, and other one in turn can register contribution points based on the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ContributionProvider"}]},{"type":"text","value":" declared by that module. The contribution point mechanism is mainly used in scenarios where modules provide registration capabilities to other modules. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-layout"}]},{"type":"text","value":" provides component-level contribution points, while other modules can freely assemble IDE interfaces by registering components with Layout's capabilities, and menu modules provide contribution points for registering menus."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"module-layer-and-dependencies","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module-layer-and-dependencies","ariaLabel":"module layer and dependencies permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module Layer and Dependencies"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We divide the modules into"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" core modules"}]},{"type":"text","value":" and"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" functional modules"}]},{"type":"text","value":". Modules have certain dependency relations. Taking "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":" as an example, a typical module inclues file reading and writing, file system registration and management. In many functional modules, to read and write operations will depend on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Core modules are mandatory that make up the core functionality of the IDE and cannot be removed. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-layout"}]},{"type":"text","value":" is responsible for the overall layout of the main interface and view registration, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-node"}]},{"type":"text","value":" are responsible for maintaining the declaration cycle of IDE ClientApp and ServerApp instances and related contribution point management."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Functional modules are generally pluggable, which means that they can be removed from the integration code or replaced without affecting other functions. However, the removal of some modules with extension API will lead the extension malfunctioning, because "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Extension"}]},{"type":"text","value":" relies on most of the functional modules to provide APIs. The following modules are the currently pluggable:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Outline"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"File-search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Terminal-next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Comments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Opened-editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"dependency-injection","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dependency-injection","ariaLabel":"dependency injection permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By a self-developed DI framework "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":", OpenSumi manages and acquires instances among these modules, and the dependency abstraction interface convention allows us to easily overlap part of the service or even the module implementation to improve extensibility. For more details on the usage of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":", see "},{"type":"element","tagName":"a","properties":{"href":"./dependence-injector"},"children":[{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":", or visit the source code at "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/di"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-and-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-and-api","ariaLabel":"extension and api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension and API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As mentioned before, many of OpenSumi's functional modules are pluggable, and those cannot be plugged is because they provide extension APIs (in other words, they can be pluggable after the Extension module is removed). OpenSumi extension system is based on the extension of VS Code, which can be regarded as a superset of VS Code extensions. For detailed introduction of the extension system, see "},{"type":"element","tagName":"a","properties":{"href":"./extension-mechanism"},"children":[{"type":"text","value":"Extension Mechanism"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi extension is similar to the VS Code extensions. We will keep its compatibility with the VS Code extension API, and constantly update and iterate the extension API. The extension API is a collection of objects, such as methods and classes, offered to third-party code to call . Extension modules contains all extensions and extension API-related implementations, but when it comes to a certain extension API, the ultimately called module is the one implemented them. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal-next"}]},{"type":"text","value":" module offers "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.window.createTerminal"}]},{"type":"text","value":" capability, while the extension just takes its package for the plug-in to call."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea"},"parent":{"relativePath":"develop/basic-design/core-idea.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/basic-design/core-modules/page-data.json b/page-data/en/docs/develop/basic-design/core-modules/page-data.json
        index 8ed671ef..ad70c722 100644
        --- a/page-data/en/docs/develop/basic-design/core-modules/page-data.json
        +++ b/page-data/en/docs/develop/basic-design/core-modules/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/core-modules","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi warehouse code is organized through [Monorepo] ("},{"type":"element","tagName":"a","properties":{"href":"https://www.perforce.com/blog/vcs/what-monorepo","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.perforce.com/blog/vcs/what-monorepo"}]},{"type":"text","value":"), and those under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"packages"}]},{"type":"text","value":" directory are all OpenSumi built-in modules as of version 2.8.0. There are 53 modules in the OpenSumi codebase. Some of them are fully pluggable while others provide core functionality. Some early designs are unsuitable for the current architecture and may be removed or incorporated into other modules in future."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"introduction-to-core-modules","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#introduction-to-core-modules","ariaLabel":"introduction to core modules permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Introduction to Core Modules"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi contains dozens of modules, while you don't need to reach every module in development. In general, you should have some basic understanding on following modules."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"core-browser","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-browser","ariaLabel":"core browser permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core Browser"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Core-browser is meant to manage part of the OpenSumi frontend at runtime, including the frontend "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" mechanism. In addition, core-Browser is responsible for initiating the RPC connection with the back end, and "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"cannot be hot-plugged"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"core-node","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-node","ariaLabel":"core node permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core Node"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similar to core-browser, core-node features the runtime management of the backend part of OpenSumi, including the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ServerApp"}]},{"type":"text","value":" and the backend "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" mechanism, which also "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"cannot be hot-plugged"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"monaco","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#monaco","ariaLabel":"monaco permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Monaco"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The main purpose of the monaco module is to reorganize and export the APIs of the Monaco Editor, because some of the OpenSumi editor functions depend on the private APIs of the Monaco Editor, so some monaco modules' APIs will be reorganized and exported for use by other modules. In addition, the monaco module also provides some "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution Points"}]},{"type":"text","value":" that other modules can register and implement, overriding some built-in services. monaco module "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"cannot be hot-plugged"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-service","ariaLabel":"file service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File-service is a built-in file service implementation. Many cases are based on native file systems, while file-service is the default implementation. In addition, OpenSumi also helps to implement other file systems by means of customizing file-service. Examples include MemoryFS and BrowserFS."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-tree-next","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-tree-next","ariaLabel":"file tree next permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Tree Next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is the default implementation of the file tree and relies on file-service to read the file tree, display the list and perform other functions. In addition, the File Tree reads \"decorations\" registered by decorations module to show the status of the file, for example, whether it has been modified in Git."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"terminal-next","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#terminal-next","ariaLabel":"terminal next permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Terminal Next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Implementing terminal functions requires frontend rendering and backend Shell process management. Terminal module provides an independent contribution point of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TerminalNetworkContribution"}]},{"type":"text","value":", encouraging connections to backend Shell process by using customized external network channels(WebSocket/Socket). At the same time, it provides VS Code Terminal related APIs."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"opensumi-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#opensumi-extension","ariaLabel":"opensumi extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"OpenSumi Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extension is the core OpenSumi extension system implementation, including the frontend view extension, the Node/VS Code extension process environment, the WebWorker extension environment. It also contains all OpenSumi and compatible VS Code extension API implementations. Extension relies on most of the functional modules, and it can be removed directly (but also loses all extension functionalities)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-manager","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-manager","ariaLabel":"extension manager permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Manager"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The main role of Extension-manager is to install, manage, enable or disable extensions. Also it supports customized sources. What makes it special is that extension-manager is the only module that can directly depend on extension module, because the extension needs to be synchronized and activated after installing and enabling it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"module-layering","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module-layering","ariaLabel":"module layering permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module Layering"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Although OpenSumi employs Monorepo to organize the code structure, and the code between each module looks flat, the logical relation between modules is actually layered. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-node"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"connection"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" monaco"}]},{"type":"text","value":" are essential in most cases and can be considered as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"underlying modules"}]},{"type":"text","value":", which cannot be safely removed or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"hot-plugged"}]},{"type":"text","value":". Modules including "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opened-editor"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"markdown"}]},{"type":"text","value":"and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" have a single role and just provide partial views and functionalities, so removing them will not have a damaging effect on OpenSumi itself, and we call them "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"functional modules"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"One of the most important criteria to determine a module belongs to an "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"underlying module"}]},{"type":"text","value":" or a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core module"}]},{"type":"text","value":" is whether it can be safely removed. If you take in 'no extension functionality', then in fact "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension"}]},{"type":"text","value":" can also be a functional module, so that most of its dependencies can be safely removed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"module-list-and-overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module-list-and-overview","ariaLabel":"module list and overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module List and Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── addons                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Used to rely on some modules to implement some functions that may have side effects, such as monitoring file-tree drag-and-drop issues and calling file-service APIs to write files  "}]},{"type":"text","value":"\n├── comments                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Used to implement the built-in Code Review comments, offering standard VS Code Comments API  "}]},{"type":"text","value":"\n├── components                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# A set of basic components shared by various OpenSumi modules  "}]},{"type":"text","value":"\n├── connection                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Used to implement the bottom RPC framework at the Web and Electron ends and the corresponding connection management  "}]},{"type":"text","value":"\n├── core-browser                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The core framework of Web side functions, including the whole OpenSumi ClientApp and life cycle implementation  "}]},{"type":"text","value":"\n├── core-common                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Incorporating some base types, such as built-in Contributions that may be relied upon by many modules "}]},{"type":"text","value":"\n├── core-electron-main            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Incorporating the basic related functions of Electron-end main process"}]},{"type":"text","value":"\n├── core-node                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The core framework of Node-end functions, including OpenSumi ServerApp and life cycle implementation"}]},{"type":"text","value":"\n├── debug                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Debugger functional module, which implements the standard Debug Adapter Protocol interface and provides the corresponding VS Code API implementation"}]},{"type":"text","value":"\n├── decoration                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Used to manage and register decorations except the editor, such as decorations of the Git state in the file tree view"}]},{"type":"text","value":"\n├── editor                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing editor and group editor operations and relevant management functionalities for Upper-level packaging module of Monaco Editor"}]},{"type":"text","value":"\n├── electron-basic                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The custom feature in the Electron base,including the basic implementation of the Welcome interface "}]},{"type":"text","value":"\n├── explorer                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing a basic view container for FileTree, to be discarded. "}]},{"type":"text","value":"\n├── express-file-server           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi built-in static resource server,mainly providing functions including extension resource reading  "}]},{"type":"text","value":"\n├── extension-manager             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Built-in extension installation, management and other functions  "}]},{"type":"text","value":"\n├── extension-storage             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing storage-related VS Code APIs to manage extension-related storage "}]},{"type":"text","value":"\n├── file-scheme                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing file:// protocol file processing operations, such as, what kind of view is used to display the file in the front end and how to save the file in the back end  "}]},{"type":"text","value":"\n├── file-search                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# File search service, based on VScode-ripgrep implementation of file search (non-content)  "}]},{"type":"text","value":"\n├── file-service                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The abstraction of File service that can customize file processing services during integration, with built-in file services based on native FS  "}]},{"type":"text","value":"\n├── file-tree-next                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# File tree implementation"}]},{"type":"text","value":"\n├── i18n                          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Built-in i18n function and language packs"}]},{"type":"text","value":"\n├── extension             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"#  Extension system implementation of OpenSumi, including extension runtime and extension API implementation "}]},{"type":"text","value":"\n├── keymaps                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# implementing keybinding function"}]},{"type":"text","value":"\n├── logs-core                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Built-in Logger implementation"}]},{"type":"text","value":"\n├── main-layout                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi main interface framework implementation which can be highly free-customized based on Layout  "}]},{"type":"text","value":"\n├── markdown                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Built-in Markdown file preview function"}]},{"type":"text","value":"\n├── markers                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Issue panel implementation, based on the diagnostic information powered by the LSP and applied to the editor, offering a standard VS Code Diagnostic API implementation"}]},{"type":"text","value":"\n├── menu-bar                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The built-in menu bar implementation, using the DOM based menu on the Web side and the native menu on the Electron side  "}]},{"type":"text","value":"\n├── monaco                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing Contributions that allow other modules (Editor) to register or override some of the built-in services, for Monaco Editor references and packaging  "}]},{"type":"text","value":"\n├── monaco-enhance                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing some basic widgets such as ZoneWidget and OverlayWidget, based on Monaco's top layer packaging"}]},{"type":"text","value":"\n├── opened-editor                 "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The \"Open Editor\" functionality implementation"}]},{"type":"text","value":"\n├── outline                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Outline function, lSP-based symbol interface, providing Treeview-based symbol jump and other functions"}]},{"type":"text","value":"\n├── output                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The output functionality implementation, providing standard VS Code Output APIs"}]},{"type":"text","value":"\n├── overlay                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi built-in overlayer functionality implementation, such as message, notification and modal"}]},{"type":"text","value":"\n├── preferences                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Setting panel and functionality implementations"}]},{"type":"text","value":"\n├── process                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# An Utils module that provides convenient subprocess management functions"}]},{"type":"text","value":"\n├── quick-open                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Quick open feature implementation, featuring a separate implementation and similar to the Monaco Editor's built-in feature  "}]},{"type":"text","value":"\n├── scm                           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The abstract interface of Source Control functionality, offering a standard VS Code SCM API, such as Git extensions that are implemented based on the SCM interface  "}]},{"type":"text","value":"\n├── search                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Cross-file text search functionality"}]},{"type":"text","value":"\n├── startup                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi Example module that can be used to start OpenSumi based on the Startup module in development state "}]},{"type":"text","value":"\n├── status-bar                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Status bar functionality implementation, offering standard VS Code StatusBar APIs"}]},{"type":"text","value":"\n├── storage                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Storage functionality implementation, mainly maintaining reading and writing of various cache in OpenSumi  "}]},{"type":"text","value":"\n├── task                          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Task functionality implementation, offering standard VS Code Task APIs"}]},{"type":"text","value":"\n├── terminal-next                 "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Terminal functionality implementation,offering standard VS Code Terminal APIs"}]},{"type":"text","value":"\n├── theme                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Color theme and icon theme functionality implementation, compatible with VS Code icons, color themes, providing standard VS Code Theme related ContributionPoint"}]},{"type":"text","value":"\n├── toolbar                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Toolbar functionality implementation, providing the OpenSumi-extended Toolbar-related APIs "}]},{"type":"text","value":"\n├── types                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi extension type declaration module, containing all VS Code API type declarations compatible with OpenSumi "}]},{"type":"text","value":"\n├── userstorage                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# User cache functionality implementation"}]},{"type":"text","value":"\n├── variable                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing management and implementation of various \"magic variables\" at runtime. For example, in the Task configuration file tasks.json, you can use ${WorkspaceFolder} to get the current working directory  "}]},{"type":"text","value":"\n├── webview                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Webview feature implementation, including various Webview components and capabilities, offering standard VS Code Webview APIs"}]},{"type":"text","value":"\n├── workspace                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Workspace functionality implementation, used to manage the current OpenSumi open workspace, and supporting multi-workspace functions"}]},{"type":"text","value":"\n└── workspace-edit                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Packaging workspace-level editing, for example, to revoke a renaming needs to call WorkspaceEdit relative functions at the same time, so as to perform a file-level revocation."}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules"},"parent":{"relativePath":"develop/basic-design/core-modules.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/core-modules","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi warehouse code is organized through [Monorepo] ("},{"type":"element","tagName":"a","properties":{"href":"https://www.perforce.com/blog/vcs/what-monorepo","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.perforce.com/blog/vcs/what-monorepo"}]},{"type":"text","value":"), and those under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"packages"}]},{"type":"text","value":" directory are all OpenSumi built-in modules as of version 2.8.0. There are 53 modules in the OpenSumi codebase. Some of them are fully pluggable while others provide core functionality. Some early designs are unsuitable for the current architecture and may be removed or incorporated into other modules in future."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"introduction-to-core-modules","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#introduction-to-core-modules","ariaLabel":"introduction to core modules permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Introduction to Core Modules"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi contains dozens of modules, while you don't need to reach every module in development. In general, you should have some basic understanding on following modules."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"core-browser","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-browser","ariaLabel":"core browser permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core Browser"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Core-browser is meant to manage part of the OpenSumi frontend at runtime, including the frontend "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" mechanism. In addition, core-Browser is responsible for initiating the RPC connection with the back end, and "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"cannot be hot-plugged"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"core-node","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-node","ariaLabel":"core node permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core Node"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similar to core-browser, core-node features the runtime management of the backend part of OpenSumi, including the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ServerApp"}]},{"type":"text","value":" and the backend "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" mechanism, which also "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"cannot be hot-plugged"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"monaco","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#monaco","ariaLabel":"monaco permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Monaco"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The main purpose of the monaco module is to reorganize and export the APIs of the Monaco Editor, because some of the OpenSumi editor functions depend on the private APIs of the Monaco Editor, so some monaco modules' APIs will be reorganized and exported for use by other modules. In addition, the monaco module also provides some "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution Points"}]},{"type":"text","value":" that other modules can register and implement, overriding some built-in services. monaco module "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"cannot be hot-plugged"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-service","ariaLabel":"file service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File-service is a built-in file service implementation. Many cases are based on native file systems, while file-service is the default implementation. In addition, OpenSumi also helps to implement other file systems by means of customizing file-service. Examples include MemoryFS and BrowserFS."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-tree-next","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-tree-next","ariaLabel":"file tree next permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Tree Next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is the default implementation of the file tree and relies on file-service to read the file tree, display the list and perform other functions. In addition, the File Tree reads \"decorations\" registered by decorations module to show the status of the file, for example, whether it has been modified in Git."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"terminal-next","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#terminal-next","ariaLabel":"terminal next permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Terminal Next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Implementing terminal functions requires frontend rendering and backend Shell process management. Terminal module provides an independent contribution point of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TerminalNetworkContribution"}]},{"type":"text","value":", encouraging connections to backend Shell process by using customized external network channels(WebSocket/Socket). At the same time, it provides VS Code Terminal related APIs."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"opensumi-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#opensumi-extension","ariaLabel":"opensumi extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"OpenSumi Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extension is the core OpenSumi extension system implementation, including the frontend view extension, the Node/VS Code extension process environment, the WebWorker extension environment. It also contains all OpenSumi and compatible VS Code extension API implementations. Extension relies on most of the functional modules, and it can be removed directly (but also loses all extension functionalities)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-manager","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-manager","ariaLabel":"extension manager permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Manager"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The main role of Extension-manager is to install, manage, enable or disable extensions. Also it supports customized sources. What makes it special is that extension-manager is the only module that can directly depend on extension module, because the extension needs to be synchronized and activated after installing and enabling it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"module-layering","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module-layering","ariaLabel":"module layering permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module Layering"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Although OpenSumi employs Monorepo to organize the code structure, and the code between each module looks flat, the logical relation between modules is actually layered. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-node"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"connection"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" monaco"}]},{"type":"text","value":" are essential in most cases and can be considered as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"underlying modules"}]},{"type":"text","value":", which cannot be safely removed or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"hot-plugged"}]},{"type":"text","value":". Modules including "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opened-editor"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"markdown"}]},{"type":"text","value":"and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" have a single role and just provide partial views and functionalities, so removing them will not have a damaging effect on OpenSumi itself, and we call them "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"functional modules"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"One of the most important criteria to determine a module belongs to an "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"underlying module"}]},{"type":"text","value":" or a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core module"}]},{"type":"text","value":" is whether it can be safely removed. If you take in 'no extension functionality', then in fact "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension"}]},{"type":"text","value":" can also be a functional module, so that most of its dependencies can be safely removed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"module-list-and-overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module-list-and-overview","ariaLabel":"module list and overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module List and Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── addons                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Used to rely on some modules to implement some functions that may have side effects, such as monitoring file-tree drag-and-drop issues and calling file-service APIs to write files  "}]},{"type":"text","value":"\n├── comments                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Used to implement the built-in Code Review comments, offering standard VS Code Comments API  "}]},{"type":"text","value":"\n├── components                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# A set of basic components shared by various OpenSumi modules  "}]},{"type":"text","value":"\n├── connection                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Used to implement the bottom RPC framework at the Web and Electron ends and the corresponding connection management  "}]},{"type":"text","value":"\n├── core-browser                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The core framework of Web side functions, including the whole OpenSumi ClientApp and life cycle implementation  "}]},{"type":"text","value":"\n├── core-common                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Incorporating some base types, such as built-in Contributions that may be relied upon by many modules "}]},{"type":"text","value":"\n├── core-electron-main            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Incorporating the basic related functions of Electron-end main process"}]},{"type":"text","value":"\n├── core-node                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The core framework of Node-end functions, including OpenSumi ServerApp and life cycle implementation"}]},{"type":"text","value":"\n├── debug                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Debugger functional module, which implements the standard Debug Adapter Protocol interface and provides the corresponding VS Code API implementation"}]},{"type":"text","value":"\n├── decoration                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Used to manage and register decorations except the editor, such as decorations of the Git state in the file tree view"}]},{"type":"text","value":"\n├── editor                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing editor and group editor operations and relevant management functionalities for Upper-level packaging module of Monaco Editor"}]},{"type":"text","value":"\n├── electron-basic                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The custom feature in the Electron base,including the basic implementation of the Welcome interface "}]},{"type":"text","value":"\n├── explorer                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing a basic view container for FileTree, to be discarded. "}]},{"type":"text","value":"\n├── express-file-server           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi built-in static resource server,mainly providing functions including extension resource reading  "}]},{"type":"text","value":"\n├── extension-manager             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Built-in extension installation, management and other functions  "}]},{"type":"text","value":"\n├── extension-storage             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing storage-related VS Code APIs to manage extension-related storage "}]},{"type":"text","value":"\n├── file-scheme                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing file:// protocol file processing operations, such as, what kind of view is used to display the file in the front end and how to save the file in the back end  "}]},{"type":"text","value":"\n├── file-search                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# File search service, based on VScode-ripgrep implementation of file search (non-content)  "}]},{"type":"text","value":"\n├── file-service                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The abstraction of File service that can customize file processing services during integration, with built-in file services based on native FS  "}]},{"type":"text","value":"\n├── file-tree-next                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# File tree implementation"}]},{"type":"text","value":"\n├── i18n                          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Built-in i18n function and language packs"}]},{"type":"text","value":"\n├── extension             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"#  Extension system implementation of OpenSumi, including extension runtime and extension API implementation "}]},{"type":"text","value":"\n├── keymaps                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# implementing keybinding function"}]},{"type":"text","value":"\n├── logs-core                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Built-in Logger implementation"}]},{"type":"text","value":"\n├── main-layout                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi main interface framework implementation which can be highly free-customized based on Layout  "}]},{"type":"text","value":"\n├── markdown                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Built-in Markdown file preview function"}]},{"type":"text","value":"\n├── markers                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Issue panel implementation, based on the diagnostic information powered by the LSP and applied to the editor, offering a standard VS Code Diagnostic API implementation"}]},{"type":"text","value":"\n├── menu-bar                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The built-in menu bar implementation, using the DOM based menu on the Web side and the native menu on the Electron side  "}]},{"type":"text","value":"\n├── monaco                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing Contributions that allow other modules (Editor) to register or override some of the built-in services, for Monaco Editor references and packaging  "}]},{"type":"text","value":"\n├── monaco-enhance                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing some basic widgets such as ZoneWidget and OverlayWidget, based on Monaco's top layer packaging"}]},{"type":"text","value":"\n├── opened-editor                 "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The \"Open Editor\" functionality implementation"}]},{"type":"text","value":"\n├── outline                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Outline function, lSP-based symbol interface, providing Treeview-based symbol jump and other functions"}]},{"type":"text","value":"\n├── output                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The output functionality implementation, providing standard VS Code Output APIs"}]},{"type":"text","value":"\n├── overlay                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi built-in overlayer functionality implementation, such as message, notification and modal"}]},{"type":"text","value":"\n├── preferences                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Setting panel and functionality implementations"}]},{"type":"text","value":"\n├── process                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# An Utils module that provides convenient subprocess management functions"}]},{"type":"text","value":"\n├── quick-open                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Quick open feature implementation, featuring a separate implementation and similar to the Monaco Editor's built-in feature  "}]},{"type":"text","value":"\n├── scm                           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# The abstract interface of Source Control functionality, offering a standard VS Code SCM API, such as Git extensions that are implemented based on the SCM interface  "}]},{"type":"text","value":"\n├── search                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Cross-file text search functionality"}]},{"type":"text","value":"\n├── startup                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi Example module that can be used to start OpenSumi based on the Startup module in development state "}]},{"type":"text","value":"\n├── status-bar                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Status bar functionality implementation, offering standard VS Code StatusBar APIs"}]},{"type":"text","value":"\n├── storage                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Storage functionality implementation, mainly maintaining reading and writing of various cache in OpenSumi  "}]},{"type":"text","value":"\n├── task                          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Task functionality implementation, offering standard VS Code Task APIs"}]},{"type":"text","value":"\n├── terminal-next                 "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Terminal functionality implementation,offering standard VS Code Terminal APIs"}]},{"type":"text","value":"\n├── theme                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Color theme and icon theme functionality implementation, compatible with VS Code icons, color themes, providing standard VS Code Theme related ContributionPoint"}]},{"type":"text","value":"\n├── toolbar                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Toolbar functionality implementation, providing the OpenSumi-extended Toolbar-related APIs "}]},{"type":"text","value":"\n├── types                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi extension type declaration module, containing all VS Code API type declarations compatible with OpenSumi "}]},{"type":"text","value":"\n├── userstorage                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# User cache functionality implementation"}]},{"type":"text","value":"\n├── variable                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Providing management and implementation of various \"magic variables\" at runtime. For example, in the Task configuration file tasks.json, you can use ${WorkspaceFolder} to get the current working directory  "}]},{"type":"text","value":"\n├── webview                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Webview feature implementation, including various Webview components and capabilities, offering standard VS Code Webview APIs"}]},{"type":"text","value":"\n├── workspace                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Workspace functionality implementation, used to manage the current OpenSumi open workspace, and supporting multi-workspace functions"}]},{"type":"text","value":"\n└── workspace-edit                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Packaging workspace-level editing, for example, to revoke a renaming needs to call WorkspaceEdit relative functions at the same time, so as to perform a file-level revocation."}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules"},"parent":{"relativePath":"develop/basic-design/core-modules.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/basic-design/dependence-injector/page-data.json b/page-data/en/docs/develop/basic-design/dependence-injector/page-data.json
        index e9d54f9d..f844c1dc 100644
        --- a/page-data/en/docs/develop/basic-design/dependence-injector/page-data.json
        +++ b/page-data/en/docs/develop/basic-design/dependence-injector/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/dependence-injector","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To promote developers to focus on their own modules and less-concern about the implementation details of other modules, we use "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" for dependency decoupling."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the dependency injection coding pattern, if we want to use a service within a module, we do not need to rely on its concrete implementation, but only on the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" it displayed and declared."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For eaxmple,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IDialogService"}]},{"type":"text","value":" uses pop-ups services in the module:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IDialogService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Furthermore, we can explicitly declare part of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":", and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":", to achieve a non-direct dependency on service capabilities, and reduce the circular dependencies."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"custom-registry-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-registry-service","ariaLabel":"custom registry service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom Registry Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the OpenSumi framework, for "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" we have designed respective module definition forms, which are:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We can always mount a customizable service on it when exporting the module. The code of the frontend and backend modules is basically the same in terms of exported content. Take a frontend module as an example, registering a custom service is shown below."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" IDemoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'IDemoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DemoService\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Apart from the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useClass"}]},{"type":"text","value":" definition syntax, the common syntax also includes "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"text","value":"and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useValue"}]},{"type":"text","value":", which can be used as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemo2Service"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// We can fetch an instance of Injector directly here"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// In this way, we can mount the same implementation for multiple tokens to achieve separation of service responsibilities  "}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDemo2Service"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"further-capabilities","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#further-capabilities","ariaLabel":"further capabilities permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Further Capabilities"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"implement-multiple-instances","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#implement-multiple-instances","ariaLabel":"implement multiple instances permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Implement Multiple Instances"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When declaring a module, we can make the implementation of the service multi-instantiated by passing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{ multiple: true }"}]},{"type":"text","value":" in dependency injection of the module configuration. Namely each time the service is obtained through DI is a re-initialized instance. The following is the instance code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" multiple"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"creat-a-sub-container","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#creat-a-sub-container","ariaLabel":"creat a sub container permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Creat a Sub Container"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With the help of creating sub-containers through "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":", we can also make colorful features possible including custom multitons by getting "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Injector"}]},{"type":"text","value":" sample directly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"INJECTOR_TOKEN"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injector "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" IDemoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'IDemoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" child "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useValue"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Hello "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"INJECTOR_TOKEN"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" demoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" DemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"classes-of-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#classes-of-service","ariaLabel":"classes of service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Classes of Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By registering a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":" for the service in the DI subcontainer, we can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":" parameter to implement calls for different classes of services. This parameter is usually used for service calls that require specific classes. For example, in configuration modules, three different implementations of the same "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" are registered by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"injectFolderPreferenceProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"inject"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderFactory"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" configurations "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceConfigurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" sectionName "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" configurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getName"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"configUri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" child "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              useValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" options\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            dropdownForTag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            tag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sectionName\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// When passed in as a configuration file, such as settings.json, get the Setting"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"configurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isConfigUri"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"configUri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProvider\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// When passed in as another file, such as launch.json"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Need to set corresponding FolderPreferenceProvider and the related FolderPreferenceProviderOptions dependency "}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The way to get FolderPreferenceProvider here must be multiple instances, because multiple profiles may exist in the workspace mode"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          tag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sectionName"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          multiple"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For implementation details, see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/develop/packages/preferences/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"preferences/src/browser/index.ts"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more capabilities, see "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" ."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector"},"parent":{"relativePath":"develop/basic-design/dependence-injector.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/dependence-injector","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To promote developers to focus on their own modules and less-concern about the implementation details of other modules, we use "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" for dependency decoupling."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the dependency injection coding pattern, if we want to use a service within a module, we do not need to rely on its concrete implementation, but only on the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" it displayed and declared."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For eaxmple,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IDialogService"}]},{"type":"text","value":" uses pop-ups services in the module:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IDialogService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Furthermore, we can explicitly declare part of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":", and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":", to achieve a non-direct dependency on service capabilities, and reduce the circular dependencies."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"custom-registry-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-registry-service","ariaLabel":"custom registry service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom Registry Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the OpenSumi framework, for "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" we have designed respective module definition forms, which are:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We can always mount a customizable service on it when exporting the module. The code of the frontend and backend modules is basically the same in terms of exported content. Take a frontend module as an example, registering a custom service is shown below."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" IDemoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'IDemoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DemoService\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Apart from the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useClass"}]},{"type":"text","value":" definition syntax, the common syntax also includes "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"text","value":"and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useValue"}]},{"type":"text","value":", which can be used as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemo2Service"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// We can fetch an instance of Injector directly here"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// In this way, we can mount the same implementation for multiple tokens to achieve separation of service responsibilities  "}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDemo2Service"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"further-capabilities","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#further-capabilities","ariaLabel":"further capabilities permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Further Capabilities"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"implement-multiple-instances","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#implement-multiple-instances","ariaLabel":"implement multiple instances permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Implement Multiple Instances"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When declaring a module, we can make the implementation of the service multi-instantiated by passing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{ multiple: true }"}]},{"type":"text","value":" in dependency injection of the module configuration. Namely each time the service is obtained through DI is a re-initialized instance. The following is the instance code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" multiple"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"creat-a-sub-container","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#creat-a-sub-container","ariaLabel":"creat a sub container permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Creat a Sub Container"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With the help of creating sub-containers through "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":", we can also make colorful features possible including custom multitons by getting "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Injector"}]},{"type":"text","value":" sample directly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"INJECTOR_TOKEN"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injector "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" IDemoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'IDemoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" child "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useValue"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Hello "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"INJECTOR_TOKEN"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" demoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" DemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"classes-of-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#classes-of-service","ariaLabel":"classes of service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Classes of Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By registering a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":" for the service in the DI subcontainer, we can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":" parameter to implement calls for different classes of services. This parameter is usually used for service calls that require specific classes. For example, in configuration modules, three different implementations of the same "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" are registered by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"injectFolderPreferenceProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"inject"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderFactory"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" configurations "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceConfigurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" sectionName "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" configurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getName"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"configUri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" child "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              useValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" options\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            dropdownForTag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            tag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sectionName\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// When passed in as a configuration file, such as settings.json, get the Setting"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"configurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isConfigUri"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"configUri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProvider\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// When passed in as another file, such as launch.json"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Need to set corresponding FolderPreferenceProvider and the related FolderPreferenceProviderOptions dependency "}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The way to get FolderPreferenceProvider here must be multiple instances, because multiple profiles may exist in the workspace mode"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          tag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sectionName"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          multiple"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For implementation details, see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/develop/packages/preferences/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"preferences/src/browser/index.ts"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more capabilities, see "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" ."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector"},"parent":{"relativePath":"develop/basic-design/dependence-injector.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/basic-design/extension-mechanism/page-data.json b/page-data/en/docs/develop/basic-design/extension-mechanism/page-data.json
        index 5ddca40b..e0d19ea4 100644
        --- a/page-data/en/docs/develop/basic-design/extension-mechanism/page-data.json
        +++ b/page-data/en/docs/develop/basic-design/extension-mechanism/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/extension-mechanism","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi extension system is a superset of VS Code extensions. In addition to official VS Code APIs, we also have extended some API extensions of our own, including frontend and WebWorker extensions. This section mainly introduces the basic principle and API implementation process of OpenSumi extensions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"basic-principle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-principle","ariaLabel":"basic principle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Principle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01anYrzq1Kcm1vW2Vkk_!!6000000001185-2-tps-2220-1485.png","alt":"OpenSumi Extension"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The preceding figure illustrates that the whole extension system involves four environments: frontend UI, Web Worker, backend main process and extension process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi extension gets three entrances: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browserMain"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workerMain"}]},{"type":"text","value":". All of them are optional. "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Main"}]},{"type":"text","value":" is the extension that is running in the independent Node.js process as shown above, its APIs remain fully compatible with VS Code. We can start from the main entry of the extension process step by step to introduce the principle of the whole extension system."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-process-extension-node-host","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-process-extension-node-host","ariaLabel":"extension process extension node host permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Process (Extension Node Host)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you have heard of VS Code's extension system, you will know that the VS Code plugin process is completely independent from the main process. The same is true of OpenSumi's extension process. As the extension process itself is a completely isolated subprocess from the main process, they communicate by Node.js's IPC."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01ttWp3E1dludC7Qkt5_!!6000000003777-2-tps-1723-726.png","alt":""},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Because all extensions run in the same process, they are accessible to each other and inherit from VS Code's design. For example, you can call "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.extensions.getExtension"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.extensions.all"}]},{"type":"text","value":" to get other extension instances, or even call other APIs exposed by rest extensions. All of these are permitted."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"web-worker-extension-process-extension-worker-host","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#web-worker-extension-process-extension-worker-host","ariaLabel":"web worker extension process extension worker host permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Web Worker Extension Process (Extension Worker Host)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Web Worker extension environment mentioned above can be seen as a low-profile version of Extension Node Host. This is because at the beginning of the design, the Web Worker extension thread is only used to undertake some dense computational tasks without reference to Node.js. Its architecture diagram is basically the same as Extension Node Host, but some APIs that strongly depend on Node.js are removed, for example, FS, Terminal, Task and Debug."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-extension","ariaLabel":"browser extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Browser extension is exclusive to OpenSumi, which is the biggest difference from VS Code. The Browser extension declares the register point by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributes"}]},{"type":"text","value":", exporting related React component into the code. Contributes Point is fixed, including left, right and bottom panels, as well as Toolbar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-api","ariaLabel":"extension api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"api-in-node-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-in-node-environment","ariaLabel":"api in node environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API in Node Environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#nodeMain"}]},{"type":"text","value":" entry declared in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" are the Node.js environment for extensions, which get access to the OpenSumi Node environment's APIs.\nCalling "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import * as sumi from 'sumi'"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"const sumi = require('sumi')"}]},{"type":"text","value":" in the extension will grant you the access to the extension APIs, and those APIs are distinguished by different namespace based on their functionality. Importing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" here will grant you the access to the API of VS Code and OpenSumi, while you can only use VS Code standard API if "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import vscode from 'vscode'"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"api-in-the-worker-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-in-the-worker-environment","ariaLabel":"api in the worker environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API in the Worker Environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" declares that the entry of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" is the Worker environment for extensions, which can access the API in the OpenSumi Worker environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker API supports both "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-worker"}]},{"type":"text","value":"and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" module names. This is because many Worker extensions migrate from the Node version, keeping the module name "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" compatible with such extensions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker API is a subset of the Node side APIs, basically every APIs can run in the Worker, except those related to FS, ChildProcess and Terminal."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"api-in-browser-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-in-browser-environment","ariaLabel":"api in browser environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API in Browser Environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" declares that the entry of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" is the Browser environment for extensions, which can access the API in the OpenSumi Browser environment. The Browser environment provides fewer APIs, which can be called by referring to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":". At its core, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" is provided to execute commands. The commands here can be called across processes, such as those registered in Node/Worker. The Browser environment is designed solely for view rendering. It's better to perform some complex business logic in Node/Worker environment."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism"},"parent":{"relativePath":"develop/basic-design/extension-mechanism.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/extension-mechanism","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi extension system is a superset of VS Code extensions. In addition to official VS Code APIs, we also have extended some API extensions of our own, including frontend and WebWorker extensions. This section mainly introduces the basic principle and API implementation process of OpenSumi extensions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"basic-principle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-principle","ariaLabel":"basic principle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Principle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01anYrzq1Kcm1vW2Vkk_!!6000000001185-2-tps-2220-1485.png","alt":"OpenSumi Extension"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The preceding figure illustrates that the whole extension system involves four environments: frontend UI, Web Worker, backend main process and extension process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi extension gets three entrances: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browserMain"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workerMain"}]},{"type":"text","value":". All of them are optional. "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Main"}]},{"type":"text","value":" is the extension that is running in the independent Node.js process as shown above, its APIs remain fully compatible with VS Code. We can start from the main entry of the extension process step by step to introduce the principle of the whole extension system."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-process-extension-node-host","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-process-extension-node-host","ariaLabel":"extension process extension node host permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Process (Extension Node Host)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you have heard of VS Code's extension system, you will know that the VS Code plugin process is completely independent from the main process. The same is true of OpenSumi's extension process. As the extension process itself is a completely isolated subprocess from the main process, they communicate by Node.js's IPC."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01ttWp3E1dludC7Qkt5_!!6000000003777-2-tps-1723-726.png","alt":""},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Because all extensions run in the same process, they are accessible to each other and inherit from VS Code's design. For example, you can call "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.extensions.getExtension"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.extensions.all"}]},{"type":"text","value":" to get other extension instances, or even call other APIs exposed by rest extensions. All of these are permitted."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"web-worker-extension-process-extension-worker-host","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#web-worker-extension-process-extension-worker-host","ariaLabel":"web worker extension process extension worker host permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Web Worker Extension Process (Extension Worker Host)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Web Worker extension environment mentioned above can be seen as a low-profile version of Extension Node Host. This is because at the beginning of the design, the Web Worker extension thread is only used to undertake some dense computational tasks without reference to Node.js. Its architecture diagram is basically the same as Extension Node Host, but some APIs that strongly depend on Node.js are removed, for example, FS, Terminal, Task and Debug."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-extension","ariaLabel":"browser extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Browser extension is exclusive to OpenSumi, which is the biggest difference from VS Code. The Browser extension declares the register point by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributes"}]},{"type":"text","value":", exporting related React component into the code. Contributes Point is fixed, including left, right and bottom panels, as well as Toolbar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-api","ariaLabel":"extension api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"api-in-node-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-in-node-environment","ariaLabel":"api in node environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API in Node Environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#nodeMain"}]},{"type":"text","value":" entry declared in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" are the Node.js environment for extensions, which get access to the OpenSumi Node environment's APIs.\nCalling "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import * as sumi from 'sumi'"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"const sumi = require('sumi')"}]},{"type":"text","value":" in the extension will grant you the access to the extension APIs, and those APIs are distinguished by different namespace based on their functionality. Importing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" here will grant you the access to the API of VS Code and OpenSumi, while you can only use VS Code standard API if "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import vscode from 'vscode'"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"api-in-the-worker-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-in-the-worker-environment","ariaLabel":"api in the worker environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API in the Worker Environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" declares that the entry of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" is the Worker environment for extensions, which can access the API in the OpenSumi Worker environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker API supports both "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-worker"}]},{"type":"text","value":"and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" module names. This is because many Worker extensions migrate from the Node version, keeping the module name "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" compatible with such extensions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker API is a subset of the Node side APIs, basically every APIs can run in the Worker, except those related to FS, ChildProcess and Terminal."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"api-in-browser-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-in-browser-environment","ariaLabel":"api in browser environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API in Browser Environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" declares that the entry of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" is the Browser environment for extensions, which can access the API in the OpenSumi Browser environment. The Browser environment provides fewer APIs, which can be called by referring to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":". At its core, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" is provided to execute commands. The commands here can be called across processes, such as those registered in Node/Worker. The Browser environment is designed solely for view rendering. It's better to perform some complex business logic in Node/Worker environment."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism"},"parent":{"relativePath":"develop/basic-design/extension-mechanism.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/basic-design/lifecycle/page-data.json b/page-data/en/docs/develop/basic-design/lifecycle/page-data.json
        index db84a8e1..59476bcb 100644
        --- a/page-data/en/docs/develop/basic-design/lifecycle/page-data.json
        +++ b/page-data/en/docs/develop/basic-design/lifecycle/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/lifecycle","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In "},{"type":"element","tagName":"a","properties":{"href":"../../integrate/quick-start/web"},"children":[{"type":"text","value":"Quick Start"}]},{"type":"text","value":", we create an instance of a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"text","value":" and call its "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"start"}]},{"type":"text","value":" mode to enable OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" app "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/*..options*/"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\napp"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"start"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Start process is simple and perceivable, mainly responsible for the following tasks:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"to create the frontend and backend connections, Websocket will be employed for the Web end, and IPC for the Electron end"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"to initialize ApplicationService to cache some system-level state, such as the OS currently running on the OpenSumi backend"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"to execute all "},{"type":"element","tagName":"a","properties":{"href":"./contribution-point"},"children":[{"type":"text","value":"Contribution Points"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"initialize"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"onStart"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"onDidStart"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"to Render the main screen"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this case, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributions"}]},{"type":"text","value":" are actually a series of life-cycle methods connected by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" in the"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributions"}]},{"type":"text","value":" mechanism. They are invoked in different stages of OpenSumi operation. In addition to the lifecycle methods described above in Start, there are other ways including closing Windows and connecting changes. This section will introduces these lifecycle and how they are used in detail."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01qpr3WB1iOcZNLbrcu_!!6000000004403-55-tps-3006-1224.svg","alt":"lifecycle"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"initialize","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#initialize","ariaLabel":"initialize permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"initialize"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Initialize is the stage that initializes the entire application. Generally, some core functions are initialized in this stage. For example, read some local caches to quickly create an instance of some services after the main screen is rendered. In addition, to speed up the interaction time, the initialize phase starts the extension process and performs a series of registration operations for extension contribution points."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"render","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#render","ariaLabel":"render permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"render"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this part, renderApp is responsible for rendering the main framework of the whole application. The core is to call the render mode of ReactDOM to render the main interface. Different from typical applications, OpenSumi's view part can be dragged and dropped to change the order and size, and it also creates new view interface based on integration and extension methods."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the next release, renderApp will be reordered before initialize phase."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"onstart","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onstart","ariaLabel":"onstart permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onStart"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"onStart is executed after the rendering of main interface; at this time you can access the DOM, loosely speaking you can monitor some events and other operations in the onStart phase. In addition, other functions that are not visible above the fold can also be placed in onStart to delay execution."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"ondidstart","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ondidstart","ariaLabel":"ondidstart permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onDidStart"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When the entire application is loaded and the core functions are available (except extensions), the IDE's basic functionalities should be adequate."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"onwillstop","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onwillstop","ariaLabel":"onwillstop permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onWillStop"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OnWillStop mainly acts on the Electron terminal to perform some collection and confirmation actions before the window is about to close. For example, if there is an unsaved file, the pop-up window asks the user whether to save the file before close it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"onstop","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onstop","ariaLabel":"onstop permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onStop"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OnStop is also applied to the Electron terminal and is executed after onWillStop, when the user confirms that the window can be closed"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"ondisposesideeffects","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ondisposesideeffects","ariaLabel":"ondisposesideeffects permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onDisposeSideEffects"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similar to the onStop trigger mechanism, but "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDisposeSideEffects"}]},{"type":"text","value":" is a special kind of life cycle. When the IDE is taken as a component, it may be possible to uninstall the whole IDE without refreshing the page. At this time, all side effects of the IDE must be made clear. It can be triggered by calling the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clientApp.dispose"}]},{"type":"text","value":" method actively."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"onreconnect","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onreconnect","ariaLabel":"onreconnect permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onReconnect"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current connection doesn't work and the module will be triggered automatically after reconnecting it. After reconnection, some modules need to be re-initialized (files and cache may be damaged during the disconnection phase and need to be re-initialized)."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle"},"parent":{"relativePath":"develop/basic-design/lifecycle.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/basic-design/lifecycle","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In "},{"type":"element","tagName":"a","properties":{"href":"../../integrate/quick-start/web"},"children":[{"type":"text","value":"Quick Start"}]},{"type":"text","value":", we create an instance of a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"text","value":" and call its "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"start"}]},{"type":"text","value":" mode to enable OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" app "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/*..options*/"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\napp"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"start"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Start process is simple and perceivable, mainly responsible for the following tasks:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"to create the frontend and backend connections, Websocket will be employed for the Web end, and IPC for the Electron end"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"to initialize ApplicationService to cache some system-level state, such as the OS currently running on the OpenSumi backend"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"to execute all "},{"type":"element","tagName":"a","properties":{"href":"./contribution-point"},"children":[{"type":"text","value":"Contribution Points"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"initialize"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"onStart"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"onDidStart"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"to Render the main screen"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this case, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributions"}]},{"type":"text","value":" are actually a series of life-cycle methods connected by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" in the"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributions"}]},{"type":"text","value":" mechanism. They are invoked in different stages of OpenSumi operation. In addition to the lifecycle methods described above in Start, there are other ways including closing Windows and connecting changes. This section will introduces these lifecycle and how they are used in detail."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01qpr3WB1iOcZNLbrcu_!!6000000004403-55-tps-3006-1224.svg","alt":"lifecycle"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"initialize","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#initialize","ariaLabel":"initialize permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"initialize"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Initialize is the stage that initializes the entire application. Generally, some core functions are initialized in this stage. For example, read some local caches to quickly create an instance of some services after the main screen is rendered. In addition, to speed up the interaction time, the initialize phase starts the extension process and performs a series of registration operations for extension contribution points."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"render","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#render","ariaLabel":"render permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"render"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this part, renderApp is responsible for rendering the main framework of the whole application. The core is to call the render mode of ReactDOM to render the main interface. Different from typical applications, OpenSumi's view part can be dragged and dropped to change the order and size, and it also creates new view interface based on integration and extension methods."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the next release, renderApp will be reordered before initialize phase."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"onstart","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onstart","ariaLabel":"onstart permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onStart"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"onStart is executed after the rendering of main interface; at this time you can access the DOM, loosely speaking you can monitor some events and other operations in the onStart phase. In addition, other functions that are not visible above the fold can also be placed in onStart to delay execution."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"ondidstart","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ondidstart","ariaLabel":"ondidstart permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onDidStart"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When the entire application is loaded and the core functions are available (except extensions), the IDE's basic functionalities should be adequate."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"onwillstop","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onwillstop","ariaLabel":"onwillstop permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onWillStop"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OnWillStop mainly acts on the Electron terminal to perform some collection and confirmation actions before the window is about to close. For example, if there is an unsaved file, the pop-up window asks the user whether to save the file before close it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"onstop","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onstop","ariaLabel":"onstop permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onStop"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OnStop is also applied to the Electron terminal and is executed after onWillStop, when the user confirms that the window can be closed"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"ondisposesideeffects","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ondisposesideeffects","ariaLabel":"ondisposesideeffects permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onDisposeSideEffects"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similar to the onStop trigger mechanism, but "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDisposeSideEffects"}]},{"type":"text","value":" is a special kind of life cycle. When the IDE is taken as a component, it may be possible to uninstall the whole IDE without refreshing the page. At this time, all side effects of the IDE must be made clear. It can be triggered by calling the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clientApp.dispose"}]},{"type":"text","value":" method actively."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"onreconnect","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onreconnect","ariaLabel":"onreconnect permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onReconnect"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current connection doesn't work and the module will be triggered automatically after reconnecting it. After reconnection, some modules need to be re-initialized (files and cache may be damaged during the disconnection phase and need to be re-initialized)."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle"},"parent":{"relativePath":"develop/basic-design/lifecycle.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/how-to-contribute/page-data.json b/page-data/en/docs/develop/how-to-contribute/page-data.json
        index 3a6ad18f..3067194d 100644
        --- a/page-data/en/docs/develop/how-to-contribute/page-data.json
        +++ b/page-data/en/docs/develop/how-to-contribute/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/how-to-contribute","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Generally speaking, you have many ways to help develop "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" code, for example, find a bug, write it down and submit a PR (Pull Requests), or simply give a piece of advice on a feature."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"issue"}]},{"type":"text","value":" marked with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PR Welcome"}]},{"type":"text","value":", it is best to submit your first PR when you have any questions in the process. You can always consult any project member in the comment area by using \"@\" any project member."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"prepare-development-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#prepare-development-environment","ariaLabel":"prepare development environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Prepare Development Environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The system tool installation method here refers to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode/wiki/How-to-Contribute","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"How-to-Contribute"}]},{"type":"text","value":" document of VS Code for translation, and you can directly view the document."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Before developing the code, you need to install some necessary development tools, clone our project code "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":", and install dependencies through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You may need the following development tools:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://git-scm.com","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Git"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://nodejs.org/en/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Node.JS"}]},{"type":"text","value":", version number "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":">= 12.x"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"<= 14.x"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.python.org/downloads/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Python"}]},{"type":"text","value":" (pre-dependency of node-gyp library; view "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp readme"}]},{"type":"text","value":" and find a suitable version currently supported)\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Note:"}]},{"type":"text","value":" Windows users install Python automatically when installing the npm module of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"windows-build-tools"}]},{"type":"text","value":". It can be quickly installed in this way as follows:"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"A C/C++ compilation tool suitable for your system:\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"macOS"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"To install "},{"type":"element","tagName":"a","properties":{"href":"https://developer.apple.com/xcode/downloads/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Xcode"}]},{"type":"text","value":" and its command line tools will automatically install "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gcc"}]},{"type":"text","value":", the installation process relies on the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"make"}]},{"type":"text","value":" tool chain\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"xcode-select --install"}]},{"type":"text","value":" to install command line tools"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Windows 10/11"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Install Windows Build Tools:\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"If you install it by the Node installer provided by "},{"type":"element","tagName":"a","properties":{"href":"https://nodejs.org/en/download/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Node.JS"}]},{"type":"text","value":" and make sure you install the native module tools, the environment will be able to be used normally."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"If you manage scripts by Node version, for example, "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/coreybutler/nvm-windows","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nvm"}]},{"type":"text","value":" or "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/jasongin/nvs","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nvs"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Install the Python version corresponding to the current version "},{"type":"element","tagName":"a","properties":{"href":"https://docs.python.org/3/using/windows.html#the-microsoft-store-package","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Microsoft Store Package"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Install "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Visual C++ Build Environment"}]},{"type":"text","value":": Visit and install "},{"type":"element","tagName":"a","properties":{"href":"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=BuildTools","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Visual Studio Build Tools"}]},{"type":"text","value":" or "},{"type":"element","tagName":"a","properties":{"href":"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Visual Studio Community Edition"}]},{"type":"text","value":". The minimal installation mode is to install "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Desktop Development with C++"}]},{"type":"text","value":" only"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Open the command line and execute "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm config set msvs_version 2019"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Note: Make sure that your local PATH only contains ASCII characters, otherwise it may cause "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp/issues/297","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp usage problems (nodejs/node-gyp/ issues#297)"}]},{"type":"text","value":", and currently it does not support the project construction and debugging in earlier Windows version."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"build-and-run","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#build-and-run","ariaLabel":"build and run permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Build and Run"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you want to learn how to run OpenSumi or debug an issue, you need to get the code locally, build it and run it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"obtain-the-code","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#obtain-the-code","ariaLabel":"obtain the code permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Obtain the Code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the first step, you need to fork a copy of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" repository, and then clone it locally:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone https://github.com/"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<<<"}]},{"type":"text","value":"your-github-account"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"/core.git"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Usually you need to synchronize the latest branch code in advance before modifying or submitting the code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" core\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" checkout main\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" pull https://github.com/opensumi/core.git main"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After handling the code conflicts, you can submit the code to your repository, and go to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/pulls","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":" to submit your PR at any time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Note: The default "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":" also contains a lot of GitHub Actions. If you don't want to execute these Actions, you can go to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://github.com/<>/core/settings/actions"}]},{"type":"text","value":" to close the corresponding Actions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"build","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#build","ariaLabel":"build permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Build"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" core\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" run init"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"run","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#run","ariaLabel":"run permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Run"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After the initialization is complete, you can run the Web version directly by using the following command, and enable "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Hot Reload"}]},{"type":"text","value":" at the same time. All modifications except the extension process can be seen in the Web in real time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By default, the framework will display the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tools/workspace"}]},{"type":"text","value":" directory under the project as the workspace directory. You can also open OpenSumi by specifying the path with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MY_WORKSPACE="}]},{"type":"text","value":", as shown below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","assign-left","variable"]},"children":[{"type":"text","value":"MY_WORKSPACE"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"workspace_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01RkgC7P1zhGC1IgghU_!!6000000006745-2-tps-2930-1802.png","alt":"perview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"debug","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#debug","ariaLabel":"debug permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Debug"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are multiple processes when OpenSumi is running. You need to determine the specific process you want to debug before you can debug them accordingly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-process","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-process","ariaLabel":"browser process permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser process"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As for the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser process"}]},{"type":"text","value":", you can debug directly through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Chrome Developer Tools"}]},{"type":"text","value":" (recommended), or install [Debugger for Chrome](https: //marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) to debug the breakpoint of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser process"}]},{"type":"text","value":", as the picture shows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01RytoAv1zgLMg9FCna_!!6000000006743-2-tps-2602-1732.png#id=YcHEw&originHeight=1732&originWidth=2602&originalType=binary&ratio=1&status=done&style=none","alt":"Browser process"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-process","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-process","ariaLabel":"node process permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node process"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As for the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node process"}]},{"type":"text","value":", after you run the framework through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm start"}]},{"type":"text","value":", you can make a breakpoint debugging of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node process"}]},{"type":"text","value":" by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Attach to BackEnd"}]},{"type":"text","value":" in the IDE debug panel based on OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN014Or5e01CFOtP5rM44_!!6000000000051-2-tps-2828-1760.png#id=fYIYf&originHeight=1760&originWidth=2828&originalType=binary&ratio=1&status=done&style=none","alt":"Node process"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition, you can also use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Launch Backend"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Launch Frontend"}]},{"type":"text","value":" in the debug panel to start the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node process"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser process"}]},{"type":"text","value":" respectively for debugging."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-process","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-process","ariaLabel":"extension process permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Process"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As for the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension process"}]},{"type":"text","value":", you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" or the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Attach to Extension Host"}]},{"type":"text","value":" method in the debugging panel built on OpenSumi to debug the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension process"}]},{"type":"text","value":". When it doesn't work sometimes, you can directly open "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"chrome://inspect"}]},{"type":"text","value":" panel to debug the code(easy to use). You can start to debug it after the framework is running by filling in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localhost:9889"}]},{"type":"text","value":" in the discovery port, as shown in the following figure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qr67Fb1LCxJsM9S8p_!!6000000001264-2-tps-2500-1412.png#id=MrtyW&originHeight=1412&originWidth=2500&originalType=binary&ratio=1&status=done&style","alt":"Extension process"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"unit-test","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#unit-test","ariaLabel":"unit test permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Unit Test"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Jest"}]},{"type":"text","value":" for unit testing, combined with the mock capability implemented in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" to simulate and test the execution environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can test the code of a module (the following code test module is debug, that is, the debug directory in the packages directory) by using the following command."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" run test:module -- "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--module"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"debug"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also debug breakpoints on test files currently activated by the editor, using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Jest Current File"}]},{"type":"text","value":" command in the debug panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"code-specification","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-specification","ariaLabel":"code specification permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Code Specification"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When running "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn run lint"}]},{"type":"text","value":", you can directly retrieve the overall code specification. Meanwhile when the code is committed, corresponding code formatting checks will be triggered."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"pr-rules","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#pr-rules","ariaLabel":"pr rules permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"PR Rules"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Each commit should be as small as possible, and you need to fill in your commit information in accordance with "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@commitlint/config-conventional#type-enum","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ng4's submission specifications"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, when you fix the variable acquisition problem of the debug module, the submission information can be as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"txt"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-txt"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-txt"]},"children":[{"type":"text","value":"fix: fix variable acquisition under the debug panel"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For PR content, just follow the PR and fill in the template."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-process-debugging","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-process-debugging","ariaLabel":"extension process debugging permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Process Debugging"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you want to debug the extension process under the OpenSumi framework, you can link your local extension process to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{root path}/tools/extensions"}]},{"type":"text","value":" directory in the form of soft link, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"ln"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-s"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"local_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"/"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"extension_name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"root path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"/tools/extensions/"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"extension_name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can quickly preview the effect by refreshing the page."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"spelling","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#spelling","ariaLabel":"spelling permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Spelling"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For common spelling issues, We recommend that you install "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Code Spell Checker"}]},{"type":"text","value":" plug-in under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode "}]},{"type":"text","value":" or an IDE built on OpenSumi, to avoid English spelling mistakes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"feedback","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#feedback","ariaLabel":"feedback permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Feedback"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We appreciate receiving suggestions and feature requirements for the OpenSumi framework. Welcome to submit and elaborate on "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute"},"parent":{"relativePath":"develop/how-to-contribute.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/how-to-contribute","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Generally speaking, you have many ways to help develop "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" code, for example, find a bug, write it down and submit a PR (Pull Requests), or simply give a piece of advice on a feature."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"issue"}]},{"type":"text","value":" marked with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PR Welcome"}]},{"type":"text","value":", it is best to submit your first PR when you have any questions in the process. You can always consult any project member in the comment area by using \"@\" any project member."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"prepare-development-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#prepare-development-environment","ariaLabel":"prepare development environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Prepare Development Environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The system tool installation method here refers to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode/wiki/How-to-Contribute","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"How-to-Contribute"}]},{"type":"text","value":" document of VS Code for translation, and you can directly view the document."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Before developing the code, you need to install some necessary development tools, clone our project code "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":", and install dependencies through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You may need the following development tools:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://git-scm.com","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Git"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://nodejs.org/en/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Node.JS"}]},{"type":"text","value":", version number "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":">= 12.x"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"<= 14.x"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.python.org/downloads/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Python"}]},{"type":"text","value":" (pre-dependency of node-gyp library; view "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp readme"}]},{"type":"text","value":" and find a suitable version currently supported)\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Note:"}]},{"type":"text","value":" Windows users install Python automatically when installing the npm module of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"windows-build-tools"}]},{"type":"text","value":". It can be quickly installed in this way as follows:"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"A C/C++ compilation tool suitable for your system:\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"macOS"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"To install "},{"type":"element","tagName":"a","properties":{"href":"https://developer.apple.com/xcode/downloads/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Xcode"}]},{"type":"text","value":" and its command line tools will automatically install "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gcc"}]},{"type":"text","value":", the installation process relies on the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"make"}]},{"type":"text","value":" tool chain\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"xcode-select --install"}]},{"type":"text","value":" to install command line tools"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Windows 10/11"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Install Windows Build Tools:\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"If you install it by the Node installer provided by "},{"type":"element","tagName":"a","properties":{"href":"https://nodejs.org/en/download/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Node.JS"}]},{"type":"text","value":" and make sure you install the native module tools, the environment will be able to be used normally."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"If you manage scripts by Node version, for example, "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/coreybutler/nvm-windows","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nvm"}]},{"type":"text","value":" or "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/jasongin/nvs","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nvs"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Install the Python version corresponding to the current version "},{"type":"element","tagName":"a","properties":{"href":"https://docs.python.org/3/using/windows.html#the-microsoft-store-package","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Microsoft Store Package"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Install "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Visual C++ Build Environment"}]},{"type":"text","value":": Visit and install "},{"type":"element","tagName":"a","properties":{"href":"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=BuildTools","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Visual Studio Build Tools"}]},{"type":"text","value":" or "},{"type":"element","tagName":"a","properties":{"href":"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Visual Studio Community Edition"}]},{"type":"text","value":". The minimal installation mode is to install "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Desktop Development with C++"}]},{"type":"text","value":" only"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Open the command line and execute "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm config set msvs_version 2019"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Note: Make sure that your local PATH only contains ASCII characters, otherwise it may cause "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp/issues/297","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp usage problems (nodejs/node-gyp/ issues#297)"}]},{"type":"text","value":", and currently it does not support the project construction and debugging in earlier Windows version."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"build-and-run","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#build-and-run","ariaLabel":"build and run permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Build and Run"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you want to learn how to run OpenSumi or debug an issue, you need to get the code locally, build it and run it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"obtain-the-code","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#obtain-the-code","ariaLabel":"obtain the code permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Obtain the Code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the first step, you need to fork a copy of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" repository, and then clone it locally:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone https://github.com/"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<<<"}]},{"type":"text","value":"your-github-account"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"/core.git"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Usually you need to synchronize the latest branch code in advance before modifying or submitting the code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" core\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" checkout main\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" pull https://github.com/opensumi/core.git main"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After handling the code conflicts, you can submit the code to your repository, and go to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/pulls","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":" to submit your PR at any time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Note: The default "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":" also contains a lot of GitHub Actions. If you don't want to execute these Actions, you can go to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://github.com/<>/core/settings/actions"}]},{"type":"text","value":" to close the corresponding Actions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"build","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#build","ariaLabel":"build permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Build"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" core\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" run init"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"run","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#run","ariaLabel":"run permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Run"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After the initialization is complete, you can run the Web version directly by using the following command, and enable "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Hot Reload"}]},{"type":"text","value":" at the same time. All modifications except the extension process can be seen in the Web in real time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By default, the framework will display the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tools/workspace"}]},{"type":"text","value":" directory under the project as the workspace directory. You can also open OpenSumi by specifying the path with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MY_WORKSPACE="}]},{"type":"text","value":", as shown below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","assign-left","variable"]},"children":[{"type":"text","value":"MY_WORKSPACE"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"workspace_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01RkgC7P1zhGC1IgghU_!!6000000006745-2-tps-2930-1802.png","alt":"perview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"debug","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#debug","ariaLabel":"debug permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Debug"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are multiple processes when OpenSumi is running. You need to determine the specific process you want to debug before you can debug them accordingly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-process","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-process","ariaLabel":"browser process permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser process"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As for the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser process"}]},{"type":"text","value":", you can debug directly through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Chrome Developer Tools"}]},{"type":"text","value":" (recommended), or install [Debugger for Chrome](https: //marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) to debug the breakpoint of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser process"}]},{"type":"text","value":", as the picture shows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01RytoAv1zgLMg9FCna_!!6000000006743-2-tps-2602-1732.png#id=YcHEw&originHeight=1732&originWidth=2602&originalType=binary&ratio=1&status=done&style=none","alt":"Browser process"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-process","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-process","ariaLabel":"node process permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node process"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As for the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node process"}]},{"type":"text","value":", after you run the framework through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm start"}]},{"type":"text","value":", you can make a breakpoint debugging of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node process"}]},{"type":"text","value":" by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Attach to BackEnd"}]},{"type":"text","value":" in the IDE debug panel based on OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN014Or5e01CFOtP5rM44_!!6000000000051-2-tps-2828-1760.png#id=fYIYf&originHeight=1760&originWidth=2828&originalType=binary&ratio=1&status=done&style=none","alt":"Node process"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition, you can also use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Launch Backend"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Launch Frontend"}]},{"type":"text","value":" in the debug panel to start the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node process"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser process"}]},{"type":"text","value":" respectively for debugging."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-process","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-process","ariaLabel":"extension process permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Process"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As for the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension process"}]},{"type":"text","value":", you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" or the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Attach to Extension Host"}]},{"type":"text","value":" method in the debugging panel built on OpenSumi to debug the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension process"}]},{"type":"text","value":". When it doesn't work sometimes, you can directly open "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"chrome://inspect"}]},{"type":"text","value":" panel to debug the code(easy to use). You can start to debug it after the framework is running by filling in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localhost:9889"}]},{"type":"text","value":" in the discovery port, as shown in the following figure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qr67Fb1LCxJsM9S8p_!!6000000001264-2-tps-2500-1412.png#id=MrtyW&originHeight=1412&originWidth=2500&originalType=binary&ratio=1&status=done&style","alt":"Extension process"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"unit-test","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#unit-test","ariaLabel":"unit test permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Unit Test"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Jest"}]},{"type":"text","value":" for unit testing, combined with the mock capability implemented in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" to simulate and test the execution environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can test the code of a module (the following code test module is debug, that is, the debug directory in the packages directory) by using the following command."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" run test:module -- "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--module"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"debug"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also debug breakpoints on test files currently activated by the editor, using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Jest Current File"}]},{"type":"text","value":" command in the debug panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"code-specification","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-specification","ariaLabel":"code specification permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Code Specification"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When running "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn run lint"}]},{"type":"text","value":", you can directly retrieve the overall code specification. Meanwhile when the code is committed, corresponding code formatting checks will be triggered."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"pr-rules","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#pr-rules","ariaLabel":"pr rules permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"PR Rules"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Each commit should be as small as possible, and you need to fill in your commit information in accordance with "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@commitlint/config-conventional#type-enum","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ng4's submission specifications"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, when you fix the variable acquisition problem of the debug module, the submission information can be as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"txt"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-txt"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-txt"]},"children":[{"type":"text","value":"fix: fix variable acquisition under the debug panel"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For PR content, just follow the PR and fill in the template."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-process-debugging","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-process-debugging","ariaLabel":"extension process debugging permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Process Debugging"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you want to debug the extension process under the OpenSumi framework, you can link your local extension process to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{root path}/tools/extensions"}]},{"type":"text","value":" directory in the form of soft link, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"ln"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-s"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"local_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"/"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"extension_name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"root path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"/tools/extensions/"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"extension_name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can quickly preview the effect by refreshing the page."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"spelling","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#spelling","ariaLabel":"spelling permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Spelling"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For common spelling issues, We recommend that you install "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Code Spell Checker"}]},{"type":"text","value":" plug-in under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode "}]},{"type":"text","value":" or an IDE built on OpenSumi, to avoid English spelling mistakes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"feedback","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#feedback","ariaLabel":"feedback permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Feedback"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We appreciate receiving suggestions and feature requirements for the OpenSumi framework. Welcome to submit and elaborate on "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute"},"parent":{"relativePath":"develop/how-to-contribute.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/how-to-design-module/page-data.json b/page-data/en/docs/develop/how-to-design-module/page-data.json
        index 792c5709..82c26a1a 100644
        --- a/page-data/en/docs/develop/how-to-design-module/page-data.json
        +++ b/page-data/en/docs/develop/how-to-design-module/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/how-to-design-module","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Based on the OpenSumi system, this section mainly introduces the idea of building modules, aiming to extend native framework functions. The creation of modules and specific practices can be found in our "},{"type":"element","tagName":"a","properties":{"href":"./sample/overview"},"children":[{"type":"text","value":"classic case"}]},{"type":"text","value":", which contains basic ideas and practices to create specific modules."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"know-about-dependency-injection","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#know-about-dependency-injection","ariaLabel":"know about dependency injection permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Know about Dependency Injection"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Before learning the module, we recommend you to read "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/dependence-injector"},"children":[{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":". In OpenSumi, all service registrations and invocations are based on this unified dependency injection structure to decouple service implementation and invocation logic, allowing framework developers to focus on developing modules and achieving more independent module construction."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"what-is-a-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#what-is-a-module","ariaLabel":"what is a module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"What Is a Module?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Generally speaking, modules are code blocks that rely on the OpenSumi framework to extend native capabilities by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Taking the extension module of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" layer as an example, a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" basic format is defined as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    AnyContributions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// contribution point files"}]},{"type":"text","value":"\n    AnyService "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// register additional services"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Contribution point files provide registration of capabilities, such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Menu"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keybinding"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ComponentView"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"And some other Service definitions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"how-to-encode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-encode","ariaLabel":"how to encode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to Encode"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When you first start to learn about OpenSumi module coding, we recommend that you look at OpenSumi first to see if there is any type of functionality or layout, and then refer to the source code to do the relevant coding. This can be accomplished with half the effort."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To start with basic needs, module coding can be generally divided into following two categories:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Functional requirements based on a view"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Demand based on service capability"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"requirements-based-on-a-view","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#requirements-based-on-a-view","ariaLabel":"requirements based on a view permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Requirements Based on a View"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The first step for all view requirements is to create a view, and in the OpenSumi framework, the steps to create a view can be divided into two steps:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register the view module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Introduce the module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Used under the specific "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Location (Layout Block)"}]},{"type":"text","value":"case"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Using the 'Explorer' module as an example, we create a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"explorer.contribution.ts"}]},{"type":"text","value":" file to register a view container:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// component: ExplorerComponent,  // The specific rendering component can be passed in here"}]},{"type":"text","value":"\n      containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When registering a view component, you can also import a specific rendering component so that the view block will be rendered with that component, for example, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Search"}]},{"type":"text","value":" panel is registered with the corresponding component directly, as shown here."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01wo34Pj1YjYZj9JPkH_!!6000000003095-0-tps-200-134.jpg","alt":"Search"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you want to register a drawerlayout that can hold multiple view components in the left and right sidebar, you can leave it here and then unregister the view in another module, such as the drawerlayout in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Explorer"}]},{"type":"text","value":", as shown in the following picture :"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01nOueUR1ExwhcLPjvv_!!6000000000419-0-tps-200-111.jpg","alt":"Explorer"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The corresponding registration method can refer to the code:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/e28ecb7eecb59e996fc92418d2ebc878456388b7/packages/file-tree-next/src/browser/file-tree-contribution.ts#L139","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"file-tree-contribution.ts#L139"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then define "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/index.ts"}]},{"type":"text","value":" file as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ExplorerContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"ExplorerContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Detailed code reference:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/explorer/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"explorer/src/browser/index.ts"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the end, you just need to import this module in the Browser layer and add the registered view ID to the corresponding layout Settings. Take the "},{"type":"element","tagName":"a","properties":{"href":""},"children":[{"type":"text","value":"opensumi/ide-startup"}]},{"type":"text","value":" project as an example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Introduce "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/master/src/browser/common-modules.ts#L44","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"common-modules.ts#L44"}]},{"type":"text","value":", Also, go to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/master/src/browser/layout-config.ts#L7","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"layout-config.ts#L7"}]},{"type":"text","value":" and declare the view rendered under the layout block. As follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" SlotLocation "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/react-providers/slot'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" defaultConfig "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout/lib/browser/default-config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" layoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"defaultConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"right"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The preceding code declares that the view component registered with ID "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@OpenSumi/IDE-Explorer"}]},{"type":"text","value":" is rendered in the right sidebar area of the IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more information about view layout, please refer to "},{"type":"element","tagName":"a","properties":{"href":"../integrate/universal-integrate-case/custom-view"},"children":[{"type":"text","value":"Custom View"}]},{"type":"text","value":" document introduction。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"demand-based-on-service-capability","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#demand-based-on-service-capability","ariaLabel":"demand based on service capability permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Demand Based on Service Capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"View-based requirements generally include service-based demands as well. In general, the OpenSumi framework provides a number of basic capabilities to support various scenarios, such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"File Service"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Popup Service"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Storage Service"}]},{"type":"text","value":", etc. Before customizing the related service capabilities, you can see if the desired effect can be achieved through a simple combination of features, if not, then you should consider customizing the service capabilities to meet your needs."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For services such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"commands"}]},{"type":"text","value":", menus, keybindings and configurations, we recommend that you use "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/contribution-point"},"children":[{"type":"text","value":"Contribute Points"}]},{"type":"text","value":" for extensions. The final use is through the following base declaration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    DemoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For personalized service capability registration, we recommend you to extend through"},{"type":"element","tagName":"a","properties":{"href":"./basic-design/dependence-injector"},"children":[{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":", and eventually register by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token + Service"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Specific practical examples can be found in the"},{"type":"element","tagName":"a","properties":{"href":"./sample/overview"},"children":[{"type":"text","value":"classic case"}]},{"type":"text","value":". A basic OpenSumi module generally needs to have the following hierarchical structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"hidden-rules-about-dependencies","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#hidden-rules-about-dependencies","ariaLabel":"hidden rules about dependencies permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Hidden Rules About Dependencies"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A basic OpenSumi module generally needs to have the following hierarchical structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".\n└── src\n│   ├── browser  # optional\n│   ├── common\n│   └── node     # optional\n└── webpack.config.js\n└── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following code is our desired dependency structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"text","value":" ...\n "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dependencies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-core-common\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"2.16.10\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/vscode-jsonrpc\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^8.0.0-next.2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"path-match\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^1.2.4\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"shortid\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^2.2.14\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"ws\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^7.2.0\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"devDependencies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-components\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"2.16.10\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-dev-tool\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^1.3.1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"mock-socket\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^9.0.2\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  ..."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Place the Browser layer and build dependencies in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"devDependencies"}]},{"type":"text","value":", and Node layer dependencies in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"dependencies"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"dependent-structure-diagram","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dependent-structure-diagram","ariaLabel":"dependent structure diagram permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dependent Structure Diagram"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01bFR3Nf1XPZgCyIDBM_!!6000000002916-2-tps-1586-820.png","alt":"Dependence"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For some of the OpenSumi global dependency structures, the following lists some hidden rules:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":" is the shared dependency of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":"and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-electron"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Modules do not directly depend on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":", but indirectly depend on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Browser resources are usually packaged and built with scripts, while Node resources need to rely directly on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules"}]},{"type":"text","value":". Therefore, we expected the Browser layer dependency of the module to be placed in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DevDepedences"}]},{"type":"text","value":" in the early design, and Node layer dependency placed on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dependences"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"All modules are built by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-dev-tool"}]},{"type":"text","value":" to import dependencies, such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"typescript"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"webpack"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Based on this directory structure, if there are multiple public dependencies of Browser modules, you can put them in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":", so as to reduce the version maintenance problems. As a resulit, many public dependencies in the frontend and backend of OpenSumi are declared independently in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" respectively."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In principle, the module "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common"}]},{"type":"text","value":" can only import content from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":", but if this module is a pure "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" module, it can be imported from the corresponding "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Now that you have an initial understanding of the OpenSumi module, all that is left is to practice and gain more practical experiences. If you have questions about practice, please feel free to submit them to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/doc/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Issue"}]},{"type":"text","value":" and we will handle your questions promptly."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules"},"parent":{"relativePath":"develop/how-to-design-module.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/how-to-design-module","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Based on the OpenSumi system, this section mainly introduces the idea of building modules, aiming to extend native framework functions. The creation of modules and specific practices can be found in our "},{"type":"element","tagName":"a","properties":{"href":"./sample/overview"},"children":[{"type":"text","value":"classic case"}]},{"type":"text","value":", which contains basic ideas and practices to create specific modules."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"know-about-dependency-injection","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#know-about-dependency-injection","ariaLabel":"know about dependency injection permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Know about Dependency Injection"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Before learning the module, we recommend you to read "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/dependence-injector"},"children":[{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":". In OpenSumi, all service registrations and invocations are based on this unified dependency injection structure to decouple service implementation and invocation logic, allowing framework developers to focus on developing modules and achieving more independent module construction."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"what-is-a-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#what-is-a-module","ariaLabel":"what is a module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"What Is a Module?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Generally speaking, modules are code blocks that rely on the OpenSumi framework to extend native capabilities by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Taking the extension module of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" layer as an example, a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" basic format is defined as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    AnyContributions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// contribution point files"}]},{"type":"text","value":"\n    AnyService "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// register additional services"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Contribution point files provide registration of capabilities, such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Menu"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keybinding"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ComponentView"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"And some other Service definitions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"how-to-encode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-encode","ariaLabel":"how to encode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to Encode"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When you first start to learn about OpenSumi module coding, we recommend that you look at OpenSumi first to see if there is any type of functionality or layout, and then refer to the source code to do the relevant coding. This can be accomplished with half the effort."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To start with basic needs, module coding can be generally divided into following two categories:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Functional requirements based on a view"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Demand based on service capability"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"requirements-based-on-a-view","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#requirements-based-on-a-view","ariaLabel":"requirements based on a view permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Requirements Based on a View"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The first step for all view requirements is to create a view, and in the OpenSumi framework, the steps to create a view can be divided into two steps:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register the view module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Introduce the module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Used under the specific "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Location (Layout Block)"}]},{"type":"text","value":"case"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Using the 'Explorer' module as an example, we create a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"explorer.contribution.ts"}]},{"type":"text","value":" file to register a view container:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// component: ExplorerComponent,  // The specific rendering component can be passed in here"}]},{"type":"text","value":"\n      containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When registering a view component, you can also import a specific rendering component so that the view block will be rendered with that component, for example, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Search"}]},{"type":"text","value":" panel is registered with the corresponding component directly, as shown here."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01wo34Pj1YjYZj9JPkH_!!6000000003095-0-tps-200-134.jpg","alt":"Search"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you want to register a drawerlayout that can hold multiple view components in the left and right sidebar, you can leave it here and then unregister the view in another module, such as the drawerlayout in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Explorer"}]},{"type":"text","value":", as shown in the following picture :"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01nOueUR1ExwhcLPjvv_!!6000000000419-0-tps-200-111.jpg","alt":"Explorer"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The corresponding registration method can refer to the code:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/e28ecb7eecb59e996fc92418d2ebc878456388b7/packages/file-tree-next/src/browser/file-tree-contribution.ts#L139","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"file-tree-contribution.ts#L139"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then define "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/index.ts"}]},{"type":"text","value":" file as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ExplorerContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"ExplorerContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Detailed code reference:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/explorer/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"explorer/src/browser/index.ts"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the end, you just need to import this module in the Browser layer and add the registered view ID to the corresponding layout Settings. Take the "},{"type":"element","tagName":"a","properties":{"href":""},"children":[{"type":"text","value":"opensumi/ide-startup"}]},{"type":"text","value":" project as an example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Introduce "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/master/src/browser/common-modules.ts#L44","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"common-modules.ts#L44"}]},{"type":"text","value":", Also, go to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/master/src/browser/layout-config.ts#L7","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"layout-config.ts#L7"}]},{"type":"text","value":" and declare the view rendered under the layout block. As follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" SlotLocation "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/react-providers/slot'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" defaultConfig "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout/lib/browser/default-config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" layoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"defaultConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"right"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The preceding code declares that the view component registered with ID "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@OpenSumi/IDE-Explorer"}]},{"type":"text","value":" is rendered in the right sidebar area of the IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more information about view layout, please refer to "},{"type":"element","tagName":"a","properties":{"href":"../integrate/universal-integrate-case/custom-view"},"children":[{"type":"text","value":"Custom View"}]},{"type":"text","value":" document introduction。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"demand-based-on-service-capability","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#demand-based-on-service-capability","ariaLabel":"demand based on service capability permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Demand Based on Service Capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"View-based requirements generally include service-based demands as well. In general, the OpenSumi framework provides a number of basic capabilities to support various scenarios, such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"File Service"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Popup Service"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Storage Service"}]},{"type":"text","value":", etc. Before customizing the related service capabilities, you can see if the desired effect can be achieved through a simple combination of features, if not, then you should consider customizing the service capabilities to meet your needs."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For services such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"commands"}]},{"type":"text","value":", menus, keybindings and configurations, we recommend that you use "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/contribution-point"},"children":[{"type":"text","value":"Contribute Points"}]},{"type":"text","value":" for extensions. The final use is through the following base declaration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    DemoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For personalized service capability registration, we recommend you to extend through"},{"type":"element","tagName":"a","properties":{"href":"./basic-design/dependence-injector"},"children":[{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":", and eventually register by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token + Service"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Specific practical examples can be found in the"},{"type":"element","tagName":"a","properties":{"href":"./sample/overview"},"children":[{"type":"text","value":"classic case"}]},{"type":"text","value":". A basic OpenSumi module generally needs to have the following hierarchical structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"hidden-rules-about-dependencies","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#hidden-rules-about-dependencies","ariaLabel":"hidden rules about dependencies permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Hidden Rules About Dependencies"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A basic OpenSumi module generally needs to have the following hierarchical structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".\n└── src\n│   ├── browser  # optional\n│   ├── common\n│   └── node     # optional\n└── webpack.config.js\n└── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following code is our desired dependency structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"text","value":" ...\n "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dependencies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-core-common\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"2.16.10\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/vscode-jsonrpc\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^8.0.0-next.2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"path-match\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^1.2.4\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"shortid\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^2.2.14\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"ws\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^7.2.0\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"devDependencies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-components\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"2.16.10\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-dev-tool\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^1.3.1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"mock-socket\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^9.0.2\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  ..."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Place the Browser layer and build dependencies in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"devDependencies"}]},{"type":"text","value":", and Node layer dependencies in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"dependencies"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"dependent-structure-diagram","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dependent-structure-diagram","ariaLabel":"dependent structure diagram permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dependent Structure Diagram"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01bFR3Nf1XPZgCyIDBM_!!6000000002916-2-tps-1586-820.png","alt":"Dependence"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For some of the OpenSumi global dependency structures, the following lists some hidden rules:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":" is the shared dependency of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":"and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-electron"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Modules do not directly depend on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":", but indirectly depend on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Browser resources are usually packaged and built with scripts, while Node resources need to rely directly on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules"}]},{"type":"text","value":". Therefore, we expected the Browser layer dependency of the module to be placed in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DevDepedences"}]},{"type":"text","value":" in the early design, and Node layer dependency placed on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dependences"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"All modules are built by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-dev-tool"}]},{"type":"text","value":" to import dependencies, such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"typescript"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"webpack"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Based on this directory structure, if there are multiple public dependencies of Browser modules, you can put them in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":", so as to reduce the version maintenance problems. As a resulit, many public dependencies in the frontend and backend of OpenSumi are declared independently in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" respectively."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In principle, the module "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common"}]},{"type":"text","value":" can only import content from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":", but if this module is a pure "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" module, it can be imported from the corresponding "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Now that you have an initial understanding of the OpenSumi module, all that is left is to practice and gain more practical experiences. If you have questions about practice, please feel free to submit them to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/doc/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Issue"}]},{"type":"text","value":" and we will handle your questions promptly."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules"},"parent":{"relativePath":"develop/how-to-design-module.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/module-apis/decoration/page-data.json b/page-data/en/docs/develop/module-apis/decoration/page-data.json
        index 226ea46c..bfe6ce55 100644
        --- a/page-data/en/docs/develop/module-apis/decoration/page-data.json
        +++ b/page-data/en/docs/develop/module-apis/decoration/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/decoration","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The FileDecoration module is used to register, manag or distribute filename related "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Decoration"}]},{"type":"text","value":" services."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"basic-concepts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-concepts","ariaLabel":"basic concepts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Concepts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Decoration ——a decorator, a means to to \"decorate\" the file tree style. The following figure is a common scenario that shows Git project special decoration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN0102WFi9267ik1JKMeC_!!6000000007615-2-tps-1038-824.png","alt":"git-sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-decorations","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-decorations","ariaLabel":"register decorations permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register Decorations"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textregisterdecorationsprovidercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textregisterdecorationsprovidercode","ariaLabel":"code classlanguage textregisterdecorationsprovidercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerDecorationsProvider"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerDecorationsProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"provider"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationsProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following code provides the underlying data structure to register DecorationsProvider."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDecorationData"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * weight\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration color\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ColorIdentifier"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration string\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" letter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration tooltip\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" tooltip"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration bubble? Decoration of similar files pass to folder?\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" bubble"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"use-case","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-case","ariaLabel":"use case permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Case"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SampleDecorationsProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDecorationsProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" label "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sample'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Emitter"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"get"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"provideDecorations"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationData "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"file"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"scheme "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'file'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      letter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'😸'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cat.smileForeground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      tooltip"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cat.smile'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      bubble"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" IDecorationData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"minotor-decorations-changes","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#minotor-decorations-changes","ariaLabel":"minotor decorations changes permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Minotor Decorations Changes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textondidchangedecorationscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondidchangedecorationscode","ariaLabel":"code classlanguage textondidchangedecorationscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidChangeDecorations"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onDidChangeDecorations"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResourceDecorationChangeEvent"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Event distribution is performed for the file name Decoration change event"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"use-case-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-case-1","ariaLabel":"use case 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Case"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"decorationsService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChangeDecorations"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// some listener"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"get-the-file-decorator","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#get-the-file-decorator","ariaLabel":"get the file decorator permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Get the File Decorator"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textgetdecorationcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetdecorationcode","ariaLabel":"code classlanguage textgetdecorationcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getDecoration"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getDecoration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" includeChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" overwrite"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecoration "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Obtain the result of the current file's Decoration by means of getting the uri, or return \"undefined\" if it doesn't get the Decoration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"use-case-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-case-2","ariaLabel":"use case 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Case"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"decorationsService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getDecoration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module"},"parent":{"relativePath":"develop/module-apis/decoration.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/decoration","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The FileDecoration module is used to register, manag or distribute filename related "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Decoration"}]},{"type":"text","value":" services."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"basic-concepts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-concepts","ariaLabel":"basic concepts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Concepts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Decoration ——a decorator, a means to to \"decorate\" the file tree style. The following figure is a common scenario that shows Git project special decoration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN0102WFi9267ik1JKMeC_!!6000000007615-2-tps-1038-824.png","alt":"git-sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-decorations","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-decorations","ariaLabel":"register decorations permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register Decorations"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textregisterdecorationsprovidercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textregisterdecorationsprovidercode","ariaLabel":"code classlanguage textregisterdecorationsprovidercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerDecorationsProvider"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerDecorationsProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"provider"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationsProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following code provides the underlying data structure to register DecorationsProvider."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDecorationData"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * weight\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration color\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ColorIdentifier"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration string\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" letter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration tooltip\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" tooltip"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration bubble? Decoration of similar files pass to folder?\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" bubble"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"use-case","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-case","ariaLabel":"use case permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Case"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SampleDecorationsProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDecorationsProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" label "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sample'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Emitter"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"get"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"provideDecorations"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationData "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"file"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"scheme "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'file'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      letter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'😸'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cat.smileForeground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      tooltip"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cat.smile'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      bubble"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" IDecorationData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"minotor-decorations-changes","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#minotor-decorations-changes","ariaLabel":"minotor decorations changes permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Minotor Decorations Changes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textondidchangedecorationscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondidchangedecorationscode","ariaLabel":"code classlanguage textondidchangedecorationscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidChangeDecorations"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onDidChangeDecorations"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResourceDecorationChangeEvent"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Event distribution is performed for the file name Decoration change event"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"use-case-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-case-1","ariaLabel":"use case 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Case"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"decorationsService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChangeDecorations"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// some listener"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"get-the-file-decorator","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#get-the-file-decorator","ariaLabel":"get the file decorator permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Get the File Decorator"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textgetdecorationcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetdecorationcode","ariaLabel":"code classlanguage textgetdecorationcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getDecoration"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getDecoration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" includeChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" overwrite"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecoration "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Obtain the result of the current file's Decoration by means of getting the uri, or return \"undefined\" if it doesn't get the Decoration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"use-case-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-case-2","ariaLabel":"use case 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Case"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"decorationsService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getDecoration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module"},"parent":{"relativePath":"develop/module-apis/decoration.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/module-apis/editor/page-data.json b/page-data/en/docs/develop/module-apis/editor/page-data.json
        index 2bf4d09b..782c457f 100644
        --- a/page-data/en/docs/develop/module-apis/editor/page-data.json
        +++ b/page-data/en/docs/develop/module-apis/editor/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/editor","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"basic-concept","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-concept","ariaLabel":"basic concept permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Concept"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following diagram shows a complete process to open an editor tab, which can help to understand the core concepts of the editor module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01BRKCnA1kelm2RqRVn_!!6000000004709-2-tps-1448-1058.png","alt":""},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The global IDE possesses a unique WorkbenchEditorService instance. The latter is the global editor management service. When we open an editor, we first call its open method and import a corresponding uri, for example, file://path/to/fileToOpen.ts."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To open this uri, we need to convert it into IResource that can be opened in the editor. It will contain more information necessary for the editor. This information is provided by the pre-registered "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Resource\n * A resource represents something that can be opened in the editor area  \n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MetaData "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Whether to allow refresh recovery\n   */"}]},{"type":"text","value":"\n  supportsRevive"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Resource Name"}]},{"type":"text","value":"\n  name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Resource URI"}]},{"type":"text","value":"\n  uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The class of resource icon"}]},{"type":"text","value":"\n  icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Addtional information of Resource "}]},{"type":"text","value":"\n  metadata"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MetaData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The resource has been removed"}]},{"type":"text","value":"\n  deleted"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":3},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Once you get the IResource, you can create a new tab on tab, showing the corresponding name and icon."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"To display contents in the editor, you also need to know how to open the IResource. KAITIAN editor module supports multiple ways to open a resource, for example, .md files with code and real-time preview. An opening means can be a code editor, diff editor, or an editor's rich components(React component). You need to register these open methods and rich components in EditorComponentRegistry in advance."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Define how to open a resource "}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IEditorOpenType"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'code'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'diff'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  componentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Default 0,bigger ones rank first"}]},{"type":"text","value":"\n  weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":5},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"After you obtained related opening method, the corresponding content appears in the editor body according to the user selected type, therefore completing the opening process of a tab."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extend-the-editor","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extend-the-editor","ariaLabel":"extend the editor permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extend the Editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browsereditorcontribution","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browsereditorcontribution","ariaLabel":"browsereditorcontribution permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Contribution points that offer features to the editor module use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerResource"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is used to register resources in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ResourceService"}]},{"type":"text","value":" that can be opened in the editor at the right time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To open a URI in the editor, first you need to register a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ResourceService"}]},{"type":"text","value":". "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":" resolves the URI to an editor resource ("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResource"}]},{"type":"text","value":") . When it is displayed on the editor Tab, its main duty is to diplay URI status including name, icon, edited status, as well as the corresponding callback when the tab is closed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerEditorComponent"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is used to register editor components, open methods, and other features in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorComponentRegistry"}]},{"type":"text","value":" at the right time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"editor resource("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResource"}]},{"type":"text","value":") corresponding to a uri needs to be able to show in the editor, and one or more openning methods need to be registered for it, as well as the React component used for the corresponding open method."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"onDidRestoreState"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When entering the IDE, the editor will try to restore the last opened editor group and the files opened inside the group\nWhen finished, the hook onDidRestoreState will be executed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerEditorFeature"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is used to register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorFeatureContribution"}]},{"type":"text","value":" with the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IEditorFeatureRegistry"}]},{"type":"text","value":" at the right time, to enhance the monaco editor in this way."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Sample 1"}]},{"type":"text","value":": Register an editor component for a Uri, e.g. example_scheme://exampleTitle, so that it can be opened within the editor."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"ExampleEditorComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"示例组件内容"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BrowserEditorContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExampleEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resourceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ResourceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// To register example_scheme will allow you to open it in the editor and set related tab icon and name"}]},{"type":"text","value":"\n    resourceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerResourceProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      provideResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n        uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IWelcomeMetaData"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Sample Editor Component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example-icon-class'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" EditorComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register the component"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ExampleEditorComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      uid"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme_component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set this component as the default opening method for the example_scheme's resource  "}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponentResolver"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resource"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" results"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        results"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          componentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme_component'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Sample 2"}]},{"type":"text","value":" :Provide additional capabilities to the monaco editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BrowserEditorContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExampleEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorFeature"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorFeatureRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorFeatureContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"contribute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"editor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The contribute function is called when the editor is created. You can add some features at this time "}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// need to return a disposer,which can be called when the editor instance is destroyed"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" editor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"monacoEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChangeModel"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"oldModelUrl"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toString"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The external module calls the editor module mainly through the class "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"WorkbenchEditorService"}]},{"type":"text","value":", to perform corresponding operations."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods","ariaLabel":"methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcloseallcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcloseallcode","ariaLabel":"code classlanguage textcloseallcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"closeAll()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"closeAll"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" force"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Close All Editors"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textopencode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textopencode","ariaLabel":"code classlanguage textopencode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"open()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IResourceOpenOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IOpenResourceResult"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open the assigned uri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textopenuriscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textopenuriscode","ariaLabel":"code classlanguage textopenuriscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"openUris()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"openUris"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open mutilpile uris"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textsaveallcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textsaveallcode","ariaLabel":"code classlanguage textsaveallcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"saveAll()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"saveAll"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"includeUntitled"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Save All"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textclosecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textclosecode","ariaLabel":"code classlanguage textclosecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"close()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"close"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" force"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Close the specified uri, equal to closeAll with the URI parameter"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgetallopeneduriscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetallopeneduriscode","ariaLabel":"code classlanguage textgetallopeneduriscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getAllOpenedUris()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getAllOpenedUris"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Get the uri that is currently open"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcreateuntitledresourcecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcreateuntitledresourcecode","ariaLabel":"code classlanguage textcreateuntitledresourcecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createUntitledResource()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createUntitledResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IUntitledOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IOpenResourceResult"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Create a resource to be saved"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"properties","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#properties","ariaLabel":"properties permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Properties"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textonactiveresourcechangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textonactiveresourcechangecode","ariaLabel":"code classlanguage textonactiveresourcechangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onActiveResourceChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onActiveResourceChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MaybeNull"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current resource has a change event"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textoncursorchangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textoncursorchangecode","ariaLabel":"code classlanguage textoncursorchangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onCursorChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onCursorChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CursorStatus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Cursor change event in the current editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textondideditorgroupschangedcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondideditorgroupschangedcode","ariaLabel":"code classlanguage textondideditorgroupschangedcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidEditorGroupsChanged"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onDidEditorGroupsChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The event that the current editorGroup changed"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textondidcurrenteditorgroupchangedcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondidcurrenteditorgroupchangedcode","ariaLabel":"code classlanguage textondidcurrenteditorgroupchangedcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidCurrentEditorGroupChanged"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onDidCurrentEditorGroupChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The event of current editorGroup changes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texteditorgroupscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texteditorgroupscode","ariaLabel":"code classlanguage texteditorgroupscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"editorGroups"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"editorGroups"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"All editor groups"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrenteditorcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrenteditorcode","ariaLabel":"code classlanguage textcurrenteditorcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentEditor"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentEditor"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditor "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current editor object"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrentresourcecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrentresourcecode","ariaLabel":"code classlanguage textcurrentresourcecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentResource"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MaybeNull"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Editor resources of current focus"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrenteditorgroupcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrenteditorgroupcode","ariaLabel":"code classlanguage textcurrenteditorgroupcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentEditorGroup"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentEditorGroup"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current editor group"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode"},"parent":{"relativePath":"develop/module-apis/editor.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/editor","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"basic-concept","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-concept","ariaLabel":"basic concept permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Concept"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following diagram shows a complete process to open an editor tab, which can help to understand the core concepts of the editor module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01BRKCnA1kelm2RqRVn_!!6000000004709-2-tps-1448-1058.png","alt":""},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The global IDE possesses a unique WorkbenchEditorService instance. The latter is the global editor management service. When we open an editor, we first call its open method and import a corresponding uri, for example, file://path/to/fileToOpen.ts."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To open this uri, we need to convert it into IResource that can be opened in the editor. It will contain more information necessary for the editor. This information is provided by the pre-registered "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Resource\n * A resource represents something that can be opened in the editor area  \n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MetaData "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Whether to allow refresh recovery\n   */"}]},{"type":"text","value":"\n  supportsRevive"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Resource Name"}]},{"type":"text","value":"\n  name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Resource URI"}]},{"type":"text","value":"\n  uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The class of resource icon"}]},{"type":"text","value":"\n  icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Addtional information of Resource "}]},{"type":"text","value":"\n  metadata"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MetaData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The resource has been removed"}]},{"type":"text","value":"\n  deleted"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":3},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Once you get the IResource, you can create a new tab on tab, showing the corresponding name and icon."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"To display contents in the editor, you also need to know how to open the IResource. KAITIAN editor module supports multiple ways to open a resource, for example, .md files with code and real-time preview. An opening means can be a code editor, diff editor, or an editor's rich components(React component). You need to register these open methods and rich components in EditorComponentRegistry in advance."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Define how to open a resource "}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IEditorOpenType"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'code'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'diff'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  componentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Default 0,bigger ones rank first"}]},{"type":"text","value":"\n  weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":5},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"After you obtained related opening method, the corresponding content appears in the editor body according to the user selected type, therefore completing the opening process of a tab."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extend-the-editor","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extend-the-editor","ariaLabel":"extend the editor permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extend the Editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browsereditorcontribution","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browsereditorcontribution","ariaLabel":"browsereditorcontribution permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Contribution points that offer features to the editor module use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerResource"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is used to register resources in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ResourceService"}]},{"type":"text","value":" that can be opened in the editor at the right time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To open a URI in the editor, first you need to register a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ResourceService"}]},{"type":"text","value":". "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":" resolves the URI to an editor resource ("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResource"}]},{"type":"text","value":") . When it is displayed on the editor Tab, its main duty is to diplay URI status including name, icon, edited status, as well as the corresponding callback when the tab is closed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerEditorComponent"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is used to register editor components, open methods, and other features in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorComponentRegistry"}]},{"type":"text","value":" at the right time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"editor resource("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResource"}]},{"type":"text","value":") corresponding to a uri needs to be able to show in the editor, and one or more openning methods need to be registered for it, as well as the React component used for the corresponding open method."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"onDidRestoreState"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When entering the IDE, the editor will try to restore the last opened editor group and the files opened inside the group\nWhen finished, the hook onDidRestoreState will be executed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerEditorFeature"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is used to register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorFeatureContribution"}]},{"type":"text","value":" with the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IEditorFeatureRegistry"}]},{"type":"text","value":" at the right time, to enhance the monaco editor in this way."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Sample 1"}]},{"type":"text","value":": Register an editor component for a Uri, e.g. example_scheme://exampleTitle, so that it can be opened within the editor."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"ExampleEditorComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"示例组件内容"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BrowserEditorContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExampleEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resourceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ResourceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// To register example_scheme will allow you to open it in the editor and set related tab icon and name"}]},{"type":"text","value":"\n    resourceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerResourceProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      provideResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n        uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IWelcomeMetaData"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Sample Editor Component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example-icon-class'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" EditorComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register the component"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ExampleEditorComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      uid"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme_component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set this component as the default opening method for the example_scheme's resource  "}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponentResolver"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resource"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" results"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        results"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          componentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme_component'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Sample 2"}]},{"type":"text","value":" :Provide additional capabilities to the monaco editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BrowserEditorContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExampleEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorFeature"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorFeatureRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorFeatureContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"contribute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"editor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The contribute function is called when the editor is created. You can add some features at this time "}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// need to return a disposer,which can be called when the editor instance is destroyed"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" editor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"monacoEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChangeModel"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"oldModelUrl"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toString"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The external module calls the editor module mainly through the class "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"WorkbenchEditorService"}]},{"type":"text","value":", to perform corresponding operations."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods","ariaLabel":"methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcloseallcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcloseallcode","ariaLabel":"code classlanguage textcloseallcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"closeAll()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"closeAll"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" force"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Close All Editors"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textopencode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textopencode","ariaLabel":"code classlanguage textopencode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"open()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IResourceOpenOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IOpenResourceResult"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open the assigned uri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textopenuriscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textopenuriscode","ariaLabel":"code classlanguage textopenuriscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"openUris()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"openUris"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open mutilpile uris"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textsaveallcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textsaveallcode","ariaLabel":"code classlanguage textsaveallcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"saveAll()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"saveAll"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"includeUntitled"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Save All"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textclosecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textclosecode","ariaLabel":"code classlanguage textclosecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"close()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"close"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" force"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Close the specified uri, equal to closeAll with the URI parameter"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgetallopeneduriscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetallopeneduriscode","ariaLabel":"code classlanguage textgetallopeneduriscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getAllOpenedUris()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getAllOpenedUris"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Get the uri that is currently open"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcreateuntitledresourcecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcreateuntitledresourcecode","ariaLabel":"code classlanguage textcreateuntitledresourcecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createUntitledResource()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createUntitledResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IUntitledOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IOpenResourceResult"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Create a resource to be saved"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"properties","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#properties","ariaLabel":"properties permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Properties"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textonactiveresourcechangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textonactiveresourcechangecode","ariaLabel":"code classlanguage textonactiveresourcechangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onActiveResourceChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onActiveResourceChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MaybeNull"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current resource has a change event"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textoncursorchangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textoncursorchangecode","ariaLabel":"code classlanguage textoncursorchangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onCursorChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onCursorChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CursorStatus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Cursor change event in the current editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textondideditorgroupschangedcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondideditorgroupschangedcode","ariaLabel":"code classlanguage textondideditorgroupschangedcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidEditorGroupsChanged"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onDidEditorGroupsChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The event that the current editorGroup changed"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textondidcurrenteditorgroupchangedcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondidcurrenteditorgroupchangedcode","ariaLabel":"code classlanguage textondidcurrenteditorgroupchangedcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidCurrentEditorGroupChanged"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onDidCurrentEditorGroupChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The event of current editorGroup changes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texteditorgroupscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texteditorgroupscode","ariaLabel":"code classlanguage texteditorgroupscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"editorGroups"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"editorGroups"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"All editor groups"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrenteditorcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrenteditorcode","ariaLabel":"code classlanguage textcurrenteditorcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentEditor"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentEditor"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditor "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current editor object"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrentresourcecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrentresourcecode","ariaLabel":"code classlanguage textcurrentresourcecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentResource"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MaybeNull"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Editor resources of current focus"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrenteditorgroupcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrenteditorgroupcode","ariaLabel":"code classlanguage textcurrenteditorgroupcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentEditorGroup"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentEditorGroup"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current editor group"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode"},"parent":{"relativePath":"develop/module-apis/editor.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/module-apis/layout/page-data.json b/page-data/en/docs/develop/module-apis/layout/page-data.json
        index 6bb83f30..e47e3c55 100644
        --- a/page-data/en/docs/develop/module-apis/layout/page-data.json
        +++ b/page-data/en/docs/develop/module-apis/layout/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/layout","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"basic-concept","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-concept","ariaLabel":"basic concept permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Concept"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The layout module(that is, @OpenSumi/IDE-main-Layout) is responsible for the basic layout of the IDE, dividing the entire window into several areas in the shape of left, main and bottom. We define those areas as slots. After we partition the layout, several large views registered to the slot are consumed through the provided slot renderer component. In special slots such as the left sidebar, a large view(called a view container) also supports registering multiple small subviews, so the final organizational relationship between the entire layout and the React view component is:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/tfs/TB1gXOU3UH1gK0jSZSyXXXtlpXa-1850-990.png","alt":"The Organizational Relations Between Layout and View"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The views we register will end up inside the view container or sub-views. Each view will be injected with a global DI instance through the ContextProvider, and the instances of each class will be available inside the view through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" method."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-a-new-view","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-a-new-view","ariaLabel":"register a new view permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register a New View"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"mode-1-static-declaration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#mode-1-static-declaration","ariaLabel":"mode 1 static declaration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Mode 1: Static Declaration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Associate a view to a unique view Token by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":", and then declare the Token to the corresponding location:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Associate view information to Tokens"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug-console'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Subview ID"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DEBUG_CONSOLE_VIEW_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DebugConsoleView"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug.console.panel.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// View container ID"}]},{"type":"text","value":"\n    containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DEBUG_CONSOLE_CONTAINER_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Map token to view slot"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" layoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"left"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug-console'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  layoutConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// rest code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"mode-2dynamic-registration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#mode-2dynamic-registration","ariaLabel":"mode 2dynamic registration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Mode 2:Dynamic Registration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Register the view by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"LayoutService"}]},{"type":"text","value":" directly:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectTabbarComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Subview ID"}]},{"type":"text","value":"\n      id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentPanelId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentsPanel\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    badge"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"panelBadge"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// View container ID"}]},{"type":"text","value":"\n    containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentPanelId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'comments'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toUpperCase"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hidden"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    activateKeyBinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ctrlcmd+shift+c'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commentsFeatureRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getCommentsPanelOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'bottom'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Dynamic registration mode also supports registering subviews to an existing view container:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register the file tree into the resource manager container"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ExplorerResourceViewId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getWorkspaceTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"3"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FileTree\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"controllisten-for-view-changes","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#controllisten-for-view-changes","ariaLabel":"controllisten for view changes permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Control/Listen for View Changes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After registering a view to a location (currently left, bottom and right) that supports multi-view switching, you can get "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layoutService.getTabbarHandler(viewOrContainerId: string)"}]},{"type":"text","value":". "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" provides very powerful view control and listening capabilities:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * dispose the entire view panel\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * dispose subview\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeView"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * activate the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * deactivate the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * active status of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isActivated"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * display current view (as distinct from active)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"show"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * hide the current view (as opposed to de-activating it, where the entire view will not be displayed on the tabbar)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Set the top title component of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitleComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Fc"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ComponentType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" object"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * set the expansion size of the current view, which will force the panel to expand\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"size"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * set the view tab's logo\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"badge"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * get the view tab's logo\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * set the view TAB icon\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setIconClass"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * whether the current view collapses (different from active, the entire slot position collapses)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isCollapsed"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * collapse view location\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setCollapsed"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * toggles the collapse expansion state of a subview\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toggleViews"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewIds"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" show"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Update the title of the subview\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateViewTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Update the title of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * disable resize in the sidebar\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setResizeLock"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"lock"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Listen to the activation status of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onActivate"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Listen to the deactivation status of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onInActivate"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handlerExplorer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandlerExplorer"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// handlerExplorer is activated"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"class","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#class","ariaLabel":"class permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Class"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"layoutservice","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#layoutservice","ariaLabel":"layoutservice permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"LayoutService"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DI token: IMainLayoutService"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Control services at the top of the layout module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"static-methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#static-methods","ariaLabel":"static methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Static Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttestcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttestcode","ariaLabel":"code classlanguage texttestcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"test()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"test"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"text"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  delimiter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ContentState"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This is a static method of testing (LayoutService does not have static methods, as an example)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods","ariaLabel":"methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textisvisiblecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textisvisiblecode","ariaLabel":"code classlanguage textisvisiblecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"isVisible()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isVisible"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Boolean"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in slots that support multiple view registration and collapsible expansion. Import in the Slot location and return the state of whether the view is visible (not collapsed)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttoggleslotcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttoggleslotcode","ariaLabel":"code classlanguage texttoggleslotcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleSlot()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toggleSlot"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" show"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" size"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Only available for Slot with multi-view registration and collapsible expansion. Toggle the collapsed and expanded state of Slot, support to pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"show"}]},{"type":"text","value":" parameter for display to specify whether to expand or not, or take the opposite value of current state to switch if not passed; support to pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"size"}]},{"type":"text","value":" parameter for display to specify the final expanded size."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The incoming "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"size"}]},{"type":"text","value":" of 0 will be ignored."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgettabbarservicecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgettabbarservicecode","ariaLabel":"code classlanguage textgettabbarservicecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarService()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TabbarService"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-view registration and collapsible expansion. Pass in the Slot location and return the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarService"}]},{"type":"text","value":" instance at the specified location."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgetaccordionservicecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetaccordionservicecode","ariaLabel":"code classlanguage textgetaccordionservicecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getAccordionService()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getAccordionService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" AccordionService"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only for Slots that support multiple sub view rendering. Pass in the Slot location and return the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AccordionService"}]},{"type":"text","value":" instance at the specified location."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgettabbarhandlercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgettabbarhandlercode","ariaLabel":"code classlanguage textgettabbarhandlercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarHandler()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewOrContainerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TabBarHandler "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in slots that support multiple view registration and collapsible expansion. Obtain the view controller corresponding to a view or subview. The controller supports view event monitoring and active expansion."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is generally recommended to use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabBarHandler"}]},{"type":"text","value":" for active control of view state, rather than the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleSlot"}]},{"type":"text","value":" API."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h6","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handler "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandler"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  console"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer tab activated!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandler"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcollecttabbarcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcollecttabbarcomponentcode","ariaLabel":"code classlanguage textcollecttabbarcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"collectTabbarComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectTabbarComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"views"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"options"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewContainerOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only for Slots that support multi-view registration and can be collapsed and expanded. Register one or more views to the specified Slot (if the specified Slot does not support multiple sub-views, only the first one will be rendered). Support for custom view title component "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"titleComponent"}]},{"type":"text","value":", which is the top area of the sidebar or the top left area of the bottom bar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdisposecontainercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdisposecontainercode","ariaLabel":"code classlanguage textdisposecontainercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"disposeContainer()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-view registration with collapsible expansion. Destroys a registered view panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcollectviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcollectviewcomponentcode","ariaLabel":"code classlanguage textcollectviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"collectViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"view"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"containerId"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"props"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-view rendering. Adding a new sub view panel to a view panel supports passing in custom default props."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textreplaceviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textreplaceviewcomponentcode","ariaLabel":"code classlanguage textreplaceviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"replaceViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"replaceViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"view"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-view rendering. Replace an existing sub view, typically used in preloaded scenarios to replace a loaded placeholder view."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdisposeviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdisposeviewcomponentcode","ariaLabel":"code classlanguage textdisposeviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"disposeViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in slots that support multiple subview rendering. Destroy a registered subview."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textrevealviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textrevealviewcode","ariaLabel":"code classlanguage textrevealviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"revealView()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"revealView"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-subview rendering. To make a subview collapsible, note that this method does not guarantee that the view container where the subview is located is visible."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"hr","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"tabbarservice","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#tabbarservice","ariaLabel":"tabbarservice permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TabbarService"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DI Token: TabbarServiceFactory"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Face the view activation control service of Slot with multi-view registration and collapsible extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"properties","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#properties","ariaLabel":"properties permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Properties"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textoncurrentchangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textoncurrentchangecode","ariaLabel":"code classlanguage textoncurrentchangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onCurrentChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"readonly onCurrentChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"previousId"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" currentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The event that currently activates a view change"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h6","properties":{"id":"example-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-1","ariaLabel":"example 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"tabbarService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onCurrentChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","parameter"]},"children":[{"type":"text","value":"e"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  console"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"currentId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"previousId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"methods-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods-1","ariaLabel":"methods 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textregistercontainercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textregistercontainercode","ariaLabel":"code classlanguage textregistercontainercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerContainer()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"componentInfo"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Register a new view container. Returns a handle to destroy the container and all its side effects."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"hr","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"react-component","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#react-component","ariaLabel":"react component permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"React Component"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"boxpanel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#boxpanel","ariaLabel":"boxpanel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"BoxPanel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"An elastic layout container component that renders subviews in a certain direction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ChildComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactElement"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nBoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  children"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ChildComponent "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ChildComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  zIndex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"splitpanel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#splitpanel","ariaLabel":"splitpanel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"SplitPanel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Layout container component with Resize support"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitChildProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  minSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  maxSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  minResize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flexGrow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  noResize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  savedSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  children"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ChildComponent "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ChildComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitPanelProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitChildProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// setAbsoluteSize ensures that the total width of adjacent nodes remains unchanged"}]},{"type":"text","value":"\n  resizeKeep"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  dynamicTarget"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Control the use of incoming dimensions sum as total dimensions or use dom dimension"}]},{"type":"text","value":"\n  useDomSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\nSplitPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SplitPanelProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"tabrendererbase","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#tabrendererbase","ariaLabel":"tabrendererbase permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TabRendererBase"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"props","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#props","ariaLabel":"props permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"props"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textsidecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textsidecode","ariaLabel":"code classlanguage textsidecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"side"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textclassnamecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textclassnamecode","ariaLabel":"code classlanguage textclassnamecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"className"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcomponentscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcomponentscode","ariaLabel":"code classlanguage textcomponentscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"components"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"components"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdirectioncode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdirectioncode","ariaLabel":"code classlanguage textdirectioncode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"direction"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textnoaccordioncode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textnoaccordioncode","ariaLabel":"code classlanguage textnoaccordioncode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"noAccordion"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"noAccordion"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttabbarviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttabbarviewcode","ariaLabel":"code classlanguage texttabbarviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarView"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabbarView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"component"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  forbidCollapse"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Tabbar size (horizontal for width, vertical for height), tab collapsed to change the size with panelBorderSize added"}]},{"type":"text","value":"\n  barSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Includes the total size of the inner and outer margins of the tab, used to control the overflow hiding logic"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"tabSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"MoreTabView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  panelBorderSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  tabClassName"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The position reserved on the tab, used to control the display effect of too many tabs"}]},{"type":"text","value":"\n  margin"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttabpanelviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttabpanelviewcode","ariaLabel":"code classlanguage texttabpanelviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabpanelView"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabpanelView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"PanelView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"component"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"titleMenu"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenu "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Size of tabPanel (horizontal is the width, vertical is height)"}]},{"type":"text","value":"\n  panelSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module"},"parent":{"relativePath":"develop/module-apis/layout.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/layout","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"basic-concept","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-concept","ariaLabel":"basic concept permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Concept"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The layout module(that is, @OpenSumi/IDE-main-Layout) is responsible for the basic layout of the IDE, dividing the entire window into several areas in the shape of left, main and bottom. We define those areas as slots. After we partition the layout, several large views registered to the slot are consumed through the provided slot renderer component. In special slots such as the left sidebar, a large view(called a view container) also supports registering multiple small subviews, so the final organizational relationship between the entire layout and the React view component is:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/tfs/TB1gXOU3UH1gK0jSZSyXXXtlpXa-1850-990.png","alt":"The Organizational Relations Between Layout and View"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The views we register will end up inside the view container or sub-views. Each view will be injected with a global DI instance through the ContextProvider, and the instances of each class will be available inside the view through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" method."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-a-new-view","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-a-new-view","ariaLabel":"register a new view permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register a New View"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"mode-1-static-declaration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#mode-1-static-declaration","ariaLabel":"mode 1 static declaration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Mode 1: Static Declaration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Associate a view to a unique view Token by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":", and then declare the Token to the corresponding location:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Associate view information to Tokens"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug-console'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Subview ID"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DEBUG_CONSOLE_VIEW_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DebugConsoleView"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug.console.panel.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// View container ID"}]},{"type":"text","value":"\n    containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DEBUG_CONSOLE_CONTAINER_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Map token to view slot"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" layoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"left"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug-console'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  layoutConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// rest code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"mode-2dynamic-registration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#mode-2dynamic-registration","ariaLabel":"mode 2dynamic registration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Mode 2:Dynamic Registration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Register the view by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"LayoutService"}]},{"type":"text","value":" directly:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectTabbarComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Subview ID"}]},{"type":"text","value":"\n      id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentPanelId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentsPanel\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    badge"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"panelBadge"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// View container ID"}]},{"type":"text","value":"\n    containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentPanelId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'comments'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toUpperCase"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hidden"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    activateKeyBinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ctrlcmd+shift+c'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commentsFeatureRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getCommentsPanelOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'bottom'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Dynamic registration mode also supports registering subviews to an existing view container:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register the file tree into the resource manager container"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ExplorerResourceViewId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getWorkspaceTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"3"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FileTree\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"controllisten-for-view-changes","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#controllisten-for-view-changes","ariaLabel":"controllisten for view changes permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Control/Listen for View Changes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After registering a view to a location (currently left, bottom and right) that supports multi-view switching, you can get "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layoutService.getTabbarHandler(viewOrContainerId: string)"}]},{"type":"text","value":". "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" provides very powerful view control and listening capabilities:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * dispose the entire view panel\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * dispose subview\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeView"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * activate the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * deactivate the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * active status of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isActivated"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * display current view (as distinct from active)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"show"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * hide the current view (as opposed to de-activating it, where the entire view will not be displayed on the tabbar)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Set the top title component of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitleComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Fc"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ComponentType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" object"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * set the expansion size of the current view, which will force the panel to expand\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"size"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * set the view tab's logo\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"badge"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * get the view tab's logo\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * set the view TAB icon\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setIconClass"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * whether the current view collapses (different from active, the entire slot position collapses)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isCollapsed"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * collapse view location\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setCollapsed"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * toggles the collapse expansion state of a subview\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toggleViews"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewIds"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" show"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Update the title of the subview\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateViewTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Update the title of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * disable resize in the sidebar\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setResizeLock"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"lock"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Listen to the activation status of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onActivate"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Listen to the deactivation status of the view\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onInActivate"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handlerExplorer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandlerExplorer"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// handlerExplorer is activated"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"class","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#class","ariaLabel":"class permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Class"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"layoutservice","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#layoutservice","ariaLabel":"layoutservice permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"LayoutService"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DI token: IMainLayoutService"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Control services at the top of the layout module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"static-methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#static-methods","ariaLabel":"static methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Static Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttestcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttestcode","ariaLabel":"code classlanguage texttestcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"test()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"test"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"text"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  delimiter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ContentState"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This is a static method of testing (LayoutService does not have static methods, as an example)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods","ariaLabel":"methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textisvisiblecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textisvisiblecode","ariaLabel":"code classlanguage textisvisiblecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"isVisible()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isVisible"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Boolean"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in slots that support multiple view registration and collapsible expansion. Import in the Slot location and return the state of whether the view is visible (not collapsed)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttoggleslotcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttoggleslotcode","ariaLabel":"code classlanguage texttoggleslotcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleSlot()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toggleSlot"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" show"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" size"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Only available for Slot with multi-view registration and collapsible expansion. Toggle the collapsed and expanded state of Slot, support to pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"show"}]},{"type":"text","value":" parameter for display to specify whether to expand or not, or take the opposite value of current state to switch if not passed; support to pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"size"}]},{"type":"text","value":" parameter for display to specify the final expanded size."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The incoming "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"size"}]},{"type":"text","value":" of 0 will be ignored."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgettabbarservicecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgettabbarservicecode","ariaLabel":"code classlanguage textgettabbarservicecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarService()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TabbarService"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-view registration and collapsible expansion. Pass in the Slot location and return the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarService"}]},{"type":"text","value":" instance at the specified location."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgetaccordionservicecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetaccordionservicecode","ariaLabel":"code classlanguage textgetaccordionservicecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getAccordionService()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getAccordionService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" AccordionService"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only for Slots that support multiple sub view rendering. Pass in the Slot location and return the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AccordionService"}]},{"type":"text","value":" instance at the specified location."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgettabbarhandlercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgettabbarhandlercode","ariaLabel":"code classlanguage textgettabbarhandlercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarHandler()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewOrContainerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TabBarHandler "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in slots that support multiple view registration and collapsible expansion. Obtain the view controller corresponding to a view or subview. The controller supports view event monitoring and active expansion."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is generally recommended to use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabBarHandler"}]},{"type":"text","value":" for active control of view state, rather than the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleSlot"}]},{"type":"text","value":" API."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h6","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handler "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandler"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  console"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer tab activated!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandler"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcollecttabbarcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcollecttabbarcomponentcode","ariaLabel":"code classlanguage textcollecttabbarcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"collectTabbarComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectTabbarComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"views"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"options"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewContainerOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only for Slots that support multi-view registration and can be collapsed and expanded. Register one or more views to the specified Slot (if the specified Slot does not support multiple sub-views, only the first one will be rendered). Support for custom view title component "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"titleComponent"}]},{"type":"text","value":", which is the top area of the sidebar or the top left area of the bottom bar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdisposecontainercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdisposecontainercode","ariaLabel":"code classlanguage textdisposecontainercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"disposeContainer()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-view registration with collapsible expansion. Destroys a registered view panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcollectviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcollectviewcomponentcode","ariaLabel":"code classlanguage textcollectviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"collectViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"view"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"containerId"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"props"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-view rendering. Adding a new sub view panel to a view panel supports passing in custom default props."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textreplaceviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textreplaceviewcomponentcode","ariaLabel":"code classlanguage textreplaceviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"replaceViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"replaceViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"view"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-view rendering. Replace an existing sub view, typically used in preloaded scenarios to replace a loaded placeholder view."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdisposeviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdisposeviewcomponentcode","ariaLabel":"code classlanguage textdisposeviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"disposeViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in slots that support multiple subview rendering. Destroy a registered subview."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textrevealviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textrevealviewcode","ariaLabel":"code classlanguage textrevealviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"revealView()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"revealView"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Available only in Slot that supports multi-subview rendering. To make a subview collapsible, note that this method does not guarantee that the view container where the subview is located is visible."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"hr","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"tabbarservice","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#tabbarservice","ariaLabel":"tabbarservice permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TabbarService"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DI Token: TabbarServiceFactory"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Face the view activation control service of Slot with multi-view registration and collapsible extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"properties","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#properties","ariaLabel":"properties permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Properties"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textoncurrentchangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textoncurrentchangecode","ariaLabel":"code classlanguage textoncurrentchangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onCurrentChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"readonly onCurrentChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"previousId"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" currentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The event that currently activates a view change"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h6","properties":{"id":"example-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-1","ariaLabel":"example 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"tabbarService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onCurrentChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","parameter"]},"children":[{"type":"text","value":"e"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  console"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"currentId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"previousId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"methods-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods-1","ariaLabel":"methods 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textregistercontainercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textregistercontainercode","ariaLabel":"code classlanguage textregistercontainercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerContainer()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"componentInfo"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Register a new view container. Returns a handle to destroy the container and all its side effects."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"hr","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"react-component","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#react-component","ariaLabel":"react component permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"React Component"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"boxpanel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#boxpanel","ariaLabel":"boxpanel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"BoxPanel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"An elastic layout container component that renders subviews in a certain direction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ChildComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactElement"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nBoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  children"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ChildComponent "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ChildComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  zIndex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"splitpanel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#splitpanel","ariaLabel":"splitpanel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"SplitPanel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Layout container component with Resize support"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitChildProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  minSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  maxSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  minResize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flexGrow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  noResize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  savedSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  children"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ChildComponent "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ChildComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitPanelProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitChildProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// setAbsoluteSize ensures that the total width of adjacent nodes remains unchanged"}]},{"type":"text","value":"\n  resizeKeep"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  dynamicTarget"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Control the use of incoming dimensions sum as total dimensions or use dom dimension"}]},{"type":"text","value":"\n  useDomSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\nSplitPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SplitPanelProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"tabrendererbase","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#tabrendererbase","ariaLabel":"tabrendererbase permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TabRendererBase"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"props","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#props","ariaLabel":"props permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"props"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textsidecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textsidecode","ariaLabel":"code classlanguage textsidecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"side"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textclassnamecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textclassnamecode","ariaLabel":"code classlanguage textclassnamecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"className"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcomponentscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcomponentscode","ariaLabel":"code classlanguage textcomponentscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"components"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"components"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdirectioncode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdirectioncode","ariaLabel":"code classlanguage textdirectioncode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"direction"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textnoaccordioncode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textnoaccordioncode","ariaLabel":"code classlanguage textnoaccordioncode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"noAccordion"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"noAccordion"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttabbarviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttabbarviewcode","ariaLabel":"code classlanguage texttabbarviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarView"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabbarView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"component"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  forbidCollapse"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Tabbar size (horizontal for width, vertical for height), tab collapsed to change the size with panelBorderSize added"}]},{"type":"text","value":"\n  barSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Includes the total size of the inner and outer margins of the tab, used to control the overflow hiding logic"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"tabSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"MoreTabView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  panelBorderSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  tabClassName"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The position reserved on the tab, used to control the display effect of too many tabs"}]},{"type":"text","value":"\n  margin"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttabpanelviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttabpanelviewcode","ariaLabel":"code classlanguage texttabpanelviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabpanelView"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabpanelView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"PanelView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"component"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"titleMenu"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenu "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Size of tabPanel (horizontal is the width, vertical is height)"}]},{"type":"text","value":"\n  panelSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module"},"parent":{"relativePath":"develop/module-apis/layout.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/module-apis/overlay/page-data.json b/page-data/en/docs/develop/module-apis/overlay/page-data.json
        index b7e8a5d9..4d0e03d2 100644
        --- a/page-data/en/docs/develop/module-apis/overlay/page-data.json
        +++ b/page-data/en/docs/develop/module-apis/overlay/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/overlay","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Overlay modules are the covering modules on the IDE, such as Dialog and Message modules. You can use this module when you need to notify the user of a message from the IDE or when you need a modal dialog box to interact with the user."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h1","properties":{"id":"message","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message","ariaLabel":"message permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Message"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Message will pop up a prompt in the lower right corner of the IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN010VHpDr1NuaK6IMhar_!!6000000001630-2-tps-1196-376.png","alt":"message"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"interface","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#interface","ariaLabel":"interface permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Interface"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"warning"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"error"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MessageType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    from"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"parameter-description","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#parameter-description","ariaLabel":"parameter description permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Parameter Description"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following parameters take info as an example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"message-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message-1","ariaLabel":"message 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"message"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Message specifies the body of the message, which can be a plain text message or a React component"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'copy successfully'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"buttons","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#buttons","ariaLabel":"buttons permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Buttons"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Buttons are in the lower right corner of the popup, rendered from left to right. After the user selects them, the results are returned"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"example-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-1","ariaLabel":"example 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Whether to update the extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'No'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"closable","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#closable","ariaLabel":"closable permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"closable"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Whether to display the close button. The default is true."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"faq","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#faq","ariaLabel":"faq permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"FAQ"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-long-does-it-take-for-the-message-to-pop-up","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-long-does-it-take-for-the-message-to-pop-up","ariaLabel":"how long does it take for the message to pop up permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How long does it take for the message to pop up"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"info: 15 seconds"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"warning: 18 seconds"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"error: 20 seconds"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-do-i-customize-message-components","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-do-i-customize-message-components","ariaLabel":"how do i customize message components permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How do I customize message components"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you don't want to use the default message icon, you can customize the message component by the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"open"}]},{"type":"text","value":" interface"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"example-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-2","ariaLabel":"example 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" messageService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"这是一个自定义消息"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"button"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"确定"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CustomMessage "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MessageType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EMPTY"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h1","properties":{"id":"dialog","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dialog","ariaLabel":"dialog permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dialog"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Dialog interface is consistent with the message, but the popup is modal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01iiAS2T1DzwnvXSD8C_!!6000000000288-2-tps-1078-390.png","alt":"dialog"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example-3","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-3","ariaLabel":"example 3 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IDialogService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'This is a modal popup'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'No'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module"},"parent":{"relativePath":"develop/module-apis/overlay.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/overlay","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Overlay modules are the covering modules on the IDE, such as Dialog and Message modules. You can use this module when you need to notify the user of a message from the IDE or when you need a modal dialog box to interact with the user."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h1","properties":{"id":"message","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message","ariaLabel":"message permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Message"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Message will pop up a prompt in the lower right corner of the IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN010VHpDr1NuaK6IMhar_!!6000000001630-2-tps-1196-376.png","alt":"message"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"interface","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#interface","ariaLabel":"interface permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Interface"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"warning"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"error"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MessageType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    from"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"parameter-description","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#parameter-description","ariaLabel":"parameter description permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Parameter Description"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following parameters take info as an example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"message-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message-1","ariaLabel":"message 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"message"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Message specifies the body of the message, which can be a plain text message or a React component"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'copy successfully'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"buttons","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#buttons","ariaLabel":"buttons permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Buttons"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Buttons are in the lower right corner of the popup, rendered from left to right. After the user selects them, the results are returned"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"example-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-1","ariaLabel":"example 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Whether to update the extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'No'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"closable","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#closable","ariaLabel":"closable permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"closable"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Whether to display the close button. The default is true."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"faq","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#faq","ariaLabel":"faq permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"FAQ"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-long-does-it-take-for-the-message-to-pop-up","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-long-does-it-take-for-the-message-to-pop-up","ariaLabel":"how long does it take for the message to pop up permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How long does it take for the message to pop up"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"info: 15 seconds"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"warning: 18 seconds"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"error: 20 seconds"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-do-i-customize-message-components","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-do-i-customize-message-components","ariaLabel":"how do i customize message components permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How do I customize message components"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you don't want to use the default message icon, you can customize the message component by the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"open"}]},{"type":"text","value":" interface"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"example-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-2","ariaLabel":"example 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" messageService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"这是一个自定义消息"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"button"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"确定"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CustomMessage "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MessageType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EMPTY"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h1","properties":{"id":"dialog","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dialog","ariaLabel":"dialog permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dialog"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Dialog interface is consistent with the message, but the popup is modal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01iiAS2T1DzwnvXSD8C_!!6000000000288-2-tps-1078-390.png","alt":"dialog"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example-3","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-3","ariaLabel":"example 3 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IDialogService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'This is a modal popup'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'No'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'yes'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module"},"parent":{"relativePath":"develop/module-apis/overlay.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/module-apis/preference/page-data.json b/page-data/en/docs/develop/module-apis/preference/page-data.json
        index 2bc06dd9..e4f6f312 100644
        --- a/page-data/en/docs/develop/module-apis/preference/page-data.json
        +++ b/page-data/en/docs/develop/module-apis/preference/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/preference","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Preferences module is used to process the reading logic of the entire IDE configuration, including color theme, icon theme, automatic save, and so on."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"storage-paths","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#storage-paths","ariaLabel":"storage paths permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Storage Paths"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The directory location of the configuration file can be read by passing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"text","value":" to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings.json"}]},{"type":"text","value":" when configuring "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" for "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"global configuration"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspace configuration"}]},{"type":"text","value":", respectively."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We will use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi"}]},{"type":"text","value":" as our default path to read the configuration file"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For global preference, we generally read from the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"~/.sumi/settings.json"}]},{"type":"text","value":" file."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For workspace configuration files, we generally read them from the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"${Workspace name}/.sumi/settings.json"}]},{"type":"text","value":" file, but for "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"multi-workspace"}]},{"type":"text","value":" projects where multiple workspaces exist, we read them from the  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"${Workspace name}.sumi-workspace"}]},{"type":"text","value":" file;"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-a-new-configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-a-new-configuration","ariaLabel":"register a new configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register a New Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"mode-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#mode-1","ariaLabel":"mode 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Mode 1"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Set configuration registration and declaration by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code Configuration Contribution"}]},{"type":"text","value":", please see "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.configuration","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Configuration Contribution"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"mode-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#mode-2","ariaLabel":"mode 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Mode 2"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By making additional configuration declarations within the module, the code is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'typescript'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo language type'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By introducing the above "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" class in the module declaration, you can register the new configuration in the IDE environment, see the code: [common.contribution.ts]("},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/v2.13.10/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/core/blob/v2.13.10/"}]},{"type":"text","value":" packages/core-browser/src/common/common.contribution.ts)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"configuration-value-operation","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#configuration-value-operation","ariaLabel":"configuration value operation permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Configuration Value Operation"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can simply get and modify the configuration file via the  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceService"}]},{"type":"text","value":" and listen for changes:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Demo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Listen for configuration change events and remember to call `disposable.dispose()` here to clear the listener function when the interface is unloaded"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" disposable "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onPreferencesChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"changes"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Preferences Changes: '"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" changes"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Obtain global preference"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"User"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set workspace preference"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set global preference"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"User"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set workspace Cpreference"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"content-extended","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#content-extended","ariaLabel":"content extended permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Content Extended"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Setting panel module "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keymap"}]},{"type":"text","value":" and"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Preference"}]},{"type":"text","value":" module have certain dependence and association relationship."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you need to have the configuration defined by introducing a module appeared in the Settings panel, you can define the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" contribution point."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"cases","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#cases","ariaLabel":"cases permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Cases"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Append a display of 'demo.language' configuration items to the 'General' panel  "}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SettingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoSettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleSettingSections"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ISettingSection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      general"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          preferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Original Preference Items"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.theme'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.icon'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.icon'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.language'"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Add configuration item"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.demo.language'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, You can also use a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" to make a configuration value that does not appear in a configuration environment, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We expect the language configuration only exists in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Global Settings"}]},{"type":"text","value":"and not in"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Workspace configuration"}]},{"type":"text","value":", so we can write my contribution point file as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SettingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoSettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleSettingSections"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ISettingSection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      general"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          preferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Original Preference "}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.theme'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.icon'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.icon'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              hiddenInScope"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more configuration details and extensions, please see the OpenSumi source code."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module"},"parent":{"relativePath":"develop/module-apis/preference.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-apis/preference","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Preferences module is used to process the reading logic of the entire IDE configuration, including color theme, icon theme, automatic save, and so on."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"storage-paths","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#storage-paths","ariaLabel":"storage paths permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Storage Paths"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The directory location of the configuration file can be read by passing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"text","value":" to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings.json"}]},{"type":"text","value":" when configuring "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" for "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"global configuration"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspace configuration"}]},{"type":"text","value":", respectively."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We will use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi"}]},{"type":"text","value":" as our default path to read the configuration file"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For global preference, we generally read from the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"~/.sumi/settings.json"}]},{"type":"text","value":" file."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For workspace configuration files, we generally read them from the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"${Workspace name}/.sumi/settings.json"}]},{"type":"text","value":" file, but for "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"multi-workspace"}]},{"type":"text","value":" projects where multiple workspaces exist, we read them from the  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"${Workspace name}.sumi-workspace"}]},{"type":"text","value":" file;"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"user-guide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-guide","ariaLabel":"user guide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User Guide"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-a-new-configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-a-new-configuration","ariaLabel":"register a new configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register a New Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"mode-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#mode-1","ariaLabel":"mode 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Mode 1"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Set configuration registration and declaration by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code Configuration Contribution"}]},{"type":"text","value":", please see "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.configuration","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Configuration Contribution"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"mode-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#mode-2","ariaLabel":"mode 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Mode 2"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By making additional configuration declarations within the module, the code is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'typescript'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo language type'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By introducing the above "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" class in the module declaration, you can register the new configuration in the IDE environment, see the code: [common.contribution.ts]("},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/v2.13.10/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/core/blob/v2.13.10/"}]},{"type":"text","value":" packages/core-browser/src/common/common.contribution.ts)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"configuration-value-operation","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#configuration-value-operation","ariaLabel":"configuration value operation permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Configuration Value Operation"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can simply get and modify the configuration file via the  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceService"}]},{"type":"text","value":" and listen for changes:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Demo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Listen for configuration change events and remember to call `disposable.dispose()` here to clear the listener function when the interface is unloaded"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" disposable "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onPreferencesChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"changes"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Preferences Changes: '"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" changes"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Obtain global preference"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"User"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set workspace preference"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set global preference"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"User"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set workspace Cpreference"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"content-extended","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#content-extended","ariaLabel":"content extended permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Content Extended"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Setting panel module "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keymap"}]},{"type":"text","value":" and"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Preference"}]},{"type":"text","value":" module have certain dependence and association relationship."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you need to have the configuration defined by introducing a module appeared in the Settings panel, you can define the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" contribution point."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"cases","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#cases","ariaLabel":"cases permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Cases"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Append a display of 'demo.language' configuration items to the 'General' panel  "}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SettingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoSettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleSettingSections"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ISettingSection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      general"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          preferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Original Preference Items"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.theme'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.icon'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.icon'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.language'"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Add configuration item"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.demo.language'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, You can also use a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" to make a configuration value that does not appear in a configuration environment, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We expect the language configuration only exists in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Global Settings"}]},{"type":"text","value":"and not in"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Workspace configuration"}]},{"type":"text","value":", so we can write my contribution point file as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SettingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoSettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleSettingSections"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ISettingSection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      general"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          preferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Original Preference "}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.theme'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.icon'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.icon'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              hiddenInScope"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more configuration details and extensions, please see the OpenSumi source code."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module"},"parent":{"relativePath":"develop/module-apis/preference.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/module-samples/page-data.json b/page-data/en/docs/develop/module-samples/page-data.json
        index ac9da91e..c1df55aa 100644
        --- a/page-data/en/docs/develop/module-samples/page-data.json
        +++ b/page-data/en/docs/develop/module-samples/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-samples","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We officially provide a case repository for module expansion "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi-module-samples"}]},{"type":"text","value":". You can learn the following contents in the template repository:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Sample"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"API & Documentation"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/connection","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Connection Sample"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/en/docs/develop/sample/connection-between-browser-and-node","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"connection-between-browser-and-node"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-env","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Terminal Env Sample"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Add custom Terminal enviroment variables"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Buitin Components"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/use-antd","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Antd Components"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use OpenSumi antd theme"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/add-welcome-content","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Welcome page"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create your welcome page"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/editor-title","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Editor Title Actions"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create Editor Title Actions"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/editor-title","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use OutputChannel"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Logging message on Output panel"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/add-welcome-content","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Add Welcome Content"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"How to add new welcome content"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/example/src/browser/i18n/setup.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"i18n in modules"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"How to custom i18n text"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/toggle-panel/browser/toggle-panel.contribution.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Toggle Panel or Sidebar"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Toggle Panel or Sidebar"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/example/src/node/start-server.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Extension Marketplace entrypoint"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Custom Extension Marketplace entrypoint"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/custom-toolbar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Layout"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-view","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Layout View"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/use-antd","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"File Opened With Custom Component"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Basic TreeView"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/builtin-services/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Modal API"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"How to use IMessageService/IDialogService/IProcessService"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/connection/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Custom Menu ID"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/connection/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Add Toolbar Menu"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/editor-empty-component/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Editor Empty Component"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Custom Editor Empty Component"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/custom-view/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Add Custom View"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/custom-context-menu/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom ContextMenu Or Menubar Menu"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-menu","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Menu"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Buitin Components"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/builtin-services","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Buitin Services"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/builtin-events","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Buitin Events"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/editor-monaco-component","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Monaco in Custom Editor Components"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The content of the module repository is also being iteratively updated, and developers are welcome to contribute your own use cases."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples"},"parent":{"relativePath":"develop/module-samples.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/module-samples","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We officially provide a case repository for module expansion "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi-module-samples"}]},{"type":"text","value":". You can learn the following contents in the template repository:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Sample"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"API & Documentation"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/connection","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Connection Sample"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/en/docs/develop/sample/connection-between-browser-and-node","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"connection-between-browser-and-node"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-env","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Terminal Env Sample"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Add custom Terminal enviroment variables"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Buitin Components"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/use-antd","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Antd Components"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use OpenSumi antd theme"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/add-welcome-content","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Welcome page"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create your welcome page"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/editor-title","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Editor Title Actions"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create Editor Title Actions"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/editor-title","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use OutputChannel"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Logging message on Output panel"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/add-welcome-content","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Add Welcome Content"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"How to add new welcome content"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/example/src/browser/i18n/setup.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"i18n in modules"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"How to custom i18n text"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/toggle-panel/browser/toggle-panel.contribution.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Toggle Panel or Sidebar"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Toggle Panel or Sidebar"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/example/src/node/start-server.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Extension Marketplace entrypoint"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Custom Extension Marketplace entrypoint"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/custom-toolbar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Layout"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-view","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Layout View"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/use-antd","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"File Opened With Custom Component"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Basic TreeView"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/builtin-services/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Modal API"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"How to use IMessageService/IDialogService/IProcessService"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/connection/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Custom Menu ID"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/connection/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Add Toolbar Menu"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/editor-empty-component/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Editor Empty Component"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Custom Editor Empty Component"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/custom-view/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Add Custom View"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/custom-context-menu/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom ContextMenu Or Menubar Menu"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-menu","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom Menu"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Buitin Components"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/builtin-services","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Buitin Services"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/builtin-events","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Buitin Events"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/editor-monaco-component","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Monaco in Custom Editor Components"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The content of the module repository is also being iteratively updated, and developers are welcome to contribute your own use cases."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples"},"parent":{"relativePath":"develop/module-samples.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/sample/connection-between-browser-and-node/page-data.json b/page-data/en/docs/develop/sample/connection-between-browser-and-node/page-data.json
        index 41892715..0ca7d2eb 100644
        --- a/page-data/en/docs/develop/sample/connection-between-browser-and-node/page-data.json
        +++ b/page-data/en/docs/develop/sample/connection-between-browser-and-node/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/connection-between-browser-and-node","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To implement two-way communication between the frontend and the backend, we rely on special service declarations of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"First of all, you need to define a single channel for two-way communication message. We define a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoConnectionServerPath"}]},{"type":"text","value":" as the only ID message channel. Frontend and backend distributes the service through the channel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ITodoConnectionServerPath "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ITodoConnectionServerPath'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"associate-front-end-and-back-end-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#associate-front-end-and-back-end-services","ariaLabel":"associate front end and back end services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Associate Front-end and Back-end Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"First, you need to inherit "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Associate on a double end "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"associated-front-end-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#associated-front-end-service","ariaLabel":"associated front end service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Associated Front-end Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"import { Provider, Injectable } from '@opensumi/di';\nimport { BrowserModule } from '@opensumi/ide-core-browser';\nimport { TodoContribution } from './todo.contribution';\nimport { TodoService } from './todo.service';\nimport { ITodoConnectionServerPath, ITodoService } from '../common';"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"@Injectable()\nexport class TodoListModule extends BrowserModule {\nproviders: Provider[] = [\n{\ntoken: ITodoService,\nuseClass: TodoService\n},\nTodoContribution\n];"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"backServices = [\n{\nservicePath: ITodoConnectionServerPath, // The only path of the two-end communication channel\nclientToken: ITodoService // Associated front-end service\n}\n];\n}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"\n### Associate Front-end and Back-end Services\n\n```ts\n// modules/todo/node/index.ts\n\nimport { Provider, Injectable } from '@opensumi/di';\nimport { NodeModule } from '@opensumi/ide-core-node';\nimport { ITodoNodeService, ITodoConnectionServerPath } from '../common';\nimport { TodoNodeService } from './todo.service';\n\n@Injectable()\nexport class TodoListModule extends NodeModule {\n  providers: Provider[] = [\n    {\n      token: ITodoNodeService,\n      useClass: TodoNodeService\n    }\n  ];\n\n  backServices = [\n    {\n      servicePath: ITodoConnectionServerPath, // The only path of the two-end communication channel\n      token: ITodoNodeService // Associated back-end service\n    }\n  ];\n}"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"implement-front-end-and-back-end-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#implement-front-end-and-back-end-services","ariaLabel":"implement front end and back end services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Implement Front-end and Back-end Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This case makes it possible that while the Todo item is clicked, a message is passed to the back-end service. Upon receiving the message, the back-end service reorganizes the content of the message and passes it back to the front-end to display messages. The following is the core implementation."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The front-end service notifies the back-end service when it displays the message."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" todoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Display the message when the backend service is invoked"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Receive back end messages"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"onMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The back-end service receives the message and sends it back to the front-end service."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"// modules/todo/node/todo.service.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"import { Injectable } from '@opensumi/di';\nimport { ITodoNodeService } from '../common';\nimport { RPCService } from '@opensumi/ide-connection';"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"@Injectable()\nexport class TodoNodeService extends RPCService implements ITodoNodeService {\nshowMessage = (message: string) => {\n// this.rpcClient![0] can directly obtain the proxy instance under the communication channel\nthis.rpcClient![0].onMessage("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"I got you message, echo again. ${message}"}]},{"type":"text","value":");\n};\n}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"\n## Results Show\n\n![Two-way dispaly](https://img.alicdn.com/imgextra/i1/O1CN01ItcgHk1l0kmoQIjmb_!!6000000004757-1-tps-1200-706.gif)\n\nSince then, we finish the whole case instruction."}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation"},"parent":{"relativePath":"develop/sample/connection-between-browser-and-node.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/connection-between-browser-and-node","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To implement two-way communication between the frontend and the backend, we rely on special service declarations of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"First of all, you need to define a single channel for two-way communication message. We define a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoConnectionServerPath"}]},{"type":"text","value":" as the only ID message channel. Frontend and backend distributes the service through the channel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ITodoConnectionServerPath "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ITodoConnectionServerPath'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"associate-front-end-and-back-end-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#associate-front-end-and-back-end-services","ariaLabel":"associate front end and back end services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Associate Front-end and Back-end Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"First, you need to inherit "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Associate on a double end "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"associated-front-end-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#associated-front-end-service","ariaLabel":"associated front end service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Associated Front-end Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"import { Provider, Injectable } from '@opensumi/di';\nimport { BrowserModule } from '@opensumi/ide-core-browser';\nimport { TodoContribution } from './todo.contribution';\nimport { TodoService } from './todo.service';\nimport { ITodoConnectionServerPath, ITodoService } from '../common';"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"@Injectable()\nexport class TodoListModule extends BrowserModule {\nproviders: Provider[] = [\n{\ntoken: ITodoService,\nuseClass: TodoService\n},\nTodoContribution\n];"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"backServices = [\n{\nservicePath: ITodoConnectionServerPath, // The only path of the two-end communication channel\nclientToken: ITodoService // Associated front-end service\n}\n];\n}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"\n### Associate Front-end and Back-end Services\n\n```ts\n// modules/todo/node/index.ts\n\nimport { Provider, Injectable } from '@opensumi/di';\nimport { NodeModule } from '@opensumi/ide-core-node';\nimport { ITodoNodeService, ITodoConnectionServerPath } from '../common';\nimport { TodoNodeService } from './todo.service';\n\n@Injectable()\nexport class TodoListModule extends NodeModule {\n  providers: Provider[] = [\n    {\n      token: ITodoNodeService,\n      useClass: TodoNodeService\n    }\n  ];\n\n  backServices = [\n    {\n      servicePath: ITodoConnectionServerPath, // The only path of the two-end communication channel\n      token: ITodoNodeService // Associated back-end service\n    }\n  ];\n}"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"implement-front-end-and-back-end-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#implement-front-end-and-back-end-services","ariaLabel":"implement front end and back end services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Implement Front-end and Back-end Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This case makes it possible that while the Todo item is clicked, a message is passed to the back-end service. Upon receiving the message, the back-end service reorganizes the content of the message and passes it back to the front-end to display messages. The following is the core implementation."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The front-end service notifies the back-end service when it displays the message."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" todoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Display the message when the backend service is invoked"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Receive back end messages"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"onMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The back-end service receives the message and sends it back to the front-end service."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"// modules/todo/node/todo.service.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"import { Injectable } from '@opensumi/di';\nimport { ITodoNodeService } from '../common';\nimport { RPCService } from '@opensumi/ide-connection';"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"@Injectable()\nexport class TodoNodeService extends RPCService implements ITodoNodeService {\nshowMessage = (message: string) => {\n// this.rpcClient![0] can directly obtain the proxy instance under the communication channel\nthis.rpcClient![0].onMessage("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"I got you message, echo again. ${message}"}]},{"type":"text","value":");\n};\n}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"\n## Results Show\n\n![Two-way dispaly](https://img.alicdn.com/imgextra/i1/O1CN01ItcgHk1l0kmoQIjmb_!!6000000004757-1-tps-1200-706.gif)\n\nSince then, we finish the whole case instruction."}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation"},"parent":{"relativePath":"develop/sample/connection-between-browser-and-node.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/sample/create-module/page-data.json b/page-data/en/docs/develop/sample/create-module/page-data.json
        index e450b62d..81170ab8 100644
        --- a/page-data/en/docs/develop/sample/create-module/page-data.json
        +++ b/page-data/en/docs/develop/sample/create-module/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/create-module","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Because the OpenSumi module does not run independently, we recommend you create your module directory outside the project directory when creating the module. Taking the template repository provided by Quick Start as an example, you can quickly start an IDE project:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-startup.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\t\t\t\t\t   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Install dependencies  "}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Start the frontend and backend in parallel"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also directly clone our case project"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/todo-list-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/todo-list-sample"}]},{"type":"text","value":" to start Quick module experience."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"directory-structure","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#directory-structure","ariaLabel":"directory structure permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Directory Structure"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Once you have your project in place, you can create a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"modules"}]},{"type":"text","value":" folder in your project and directory to store module files. The following is the basic directory structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n└── workspace                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Work directory "}]},{"type":"text","value":"\n├── modules                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Directory for storing modules"}]},{"type":"text","value":"\n├── extensions                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension directory"}]},{"type":"text","value":"\n├── src\n│   ├── browser\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n├── tsconfig.json\n├── webpack.browser.config.js\n├── webpack.node.config.js\n├── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"create-entry-files","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#create-entry-files","ariaLabel":"create entry files permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Create Entry Files"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"modules"}]},{"type":"text","value":" directory, we start to create our front and back entry files with the following basic directory structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n└── "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":".."}]},{"type":"text","value":".\n├── modules                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# to store module directory"}]},{"type":"text","value":"\n│   ├── browser\n│   │   └── index.ts\n│   │   ├── todo.module.less\n│   │   └── todo.view.tsx\n│   ├── common\n│   │   └── index.ts\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n│   │   └── index.ts\n└── "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":".."}]},{"type":"text","value":"."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"front-end-module-entry","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#front-end-module-entry","ariaLabel":"front end module entry permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Front-end Module Entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"back-end-module-entry","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#back-end-module-entry","ariaLabel":"back end module entry permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Back-End Module Entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"to-introduce-custom-modules","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#to-introduce-custom-modules","ariaLabel":"to introduce custom modules permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"To Introduce Custom Modules"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We find the frontend and backend entry files of the framework, and introduce our custom modules separately in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common-modules.ts"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" CommonBrowserModules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ConstructorOf"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BrowserModule"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"TodoListModule\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" CommonNodeModules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ConstructorOf"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"NodeModule"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"TodoListModule\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Consequently, the creation and introduction of TodoList module is finished."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module"},"parent":{"relativePath":"develop/sample/create-module.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/create-module","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Because the OpenSumi module does not run independently, we recommend you create your module directory outside the project directory when creating the module. Taking the template repository provided by Quick Start as an example, you can quickly start an IDE project:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-startup.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\t\t\t\t\t   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Install dependencies  "}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Start the frontend and backend in parallel"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also directly clone our case project"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/todo-list-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/todo-list-sample"}]},{"type":"text","value":" to start Quick module experience."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"directory-structure","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#directory-structure","ariaLabel":"directory structure permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Directory Structure"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Once you have your project in place, you can create a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"modules"}]},{"type":"text","value":" folder in your project and directory to store module files. The following is the basic directory structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n└── workspace                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Work directory "}]},{"type":"text","value":"\n├── modules                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Directory for storing modules"}]},{"type":"text","value":"\n├── extensions                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension directory"}]},{"type":"text","value":"\n├── src\n│   ├── browser\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n├── tsconfig.json\n├── webpack.browser.config.js\n├── webpack.node.config.js\n├── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"create-entry-files","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#create-entry-files","ariaLabel":"create entry files permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Create Entry Files"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"modules"}]},{"type":"text","value":" directory, we start to create our front and back entry files with the following basic directory structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n└── "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":".."}]},{"type":"text","value":".\n├── modules                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# to store module directory"}]},{"type":"text","value":"\n│   ├── browser\n│   │   └── index.ts\n│   │   ├── todo.module.less\n│   │   └── todo.view.tsx\n│   ├── common\n│   │   └── index.ts\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n│   │   └── index.ts\n└── "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":".."}]},{"type":"text","value":"."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"front-end-module-entry","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#front-end-module-entry","ariaLabel":"front end module entry permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Front-end Module Entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"back-end-module-entry","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#back-end-module-entry","ariaLabel":"back end module entry permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Back-End Module Entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"to-introduce-custom-modules","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#to-introduce-custom-modules","ariaLabel":"to introduce custom modules permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"To Introduce Custom Modules"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We find the frontend and backend entry files of the framework, and introduce our custom modules separately in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common-modules.ts"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" CommonBrowserModules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ConstructorOf"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BrowserModule"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"TodoListModule\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" CommonNodeModules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ConstructorOf"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"NodeModule"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"TodoListModule\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Consequently, the creation and introduction of TodoList module is finished."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module"},"parent":{"relativePath":"develop/sample/create-module.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/sample/display-list/page-data.json b/page-data/en/docs/develop/sample/display-list/page-data.json
        index edbefa8e..83c00a54 100644
        --- a/page-data/en/docs/develop/sample/display-list/page-data.json
        +++ b/page-data/en/docs/develop/sample/display-list/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/display-list","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To reach a list of high performance, we usually need some three-party libraries to implement it. However, we have established a number of common components in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-components"}]},{"type":"text","value":" under OpenSumi, and we will show how to render our TodoList list with these components."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"data-structure","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#data-structure","ariaLabel":"data structure permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Data Structure"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In panels registered by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMainLayoutService"}]},{"type":"text","value":" service, components render with a default "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"viewState"}]},{"type":"text","value":" property, from which you can get the width and height of the entire panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"rendering-list","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#rendering-list","ariaLabel":"rendering list permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Rendering List"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We introduce "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"RecycleList"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CheckBox"}]},{"type":"text","value":" from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-components"}]},{"type":"text","value":".The following is the complete code after combination:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" styles "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.module.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" RecycleList"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CheckBox "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-components'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"template"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handlerChange"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"splice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todo_item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CheckBox\n          checked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          onChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handlerChange"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"RecycleList\n      height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"height"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      itemHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      template"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"template"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"results-show","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#results-show","ariaLabel":"results show permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Results Show"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN011vAfYR1PVVpp1V4WI_!!6000000001846-2-tps-2738-1810.png","alt":"List"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the next section, we will further learn how to use DI to work with rich framework services."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List"},"parent":{"relativePath":"develop/sample/display-list.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/display-list","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To reach a list of high performance, we usually need some three-party libraries to implement it. However, we have established a number of common components in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-components"}]},{"type":"text","value":" under OpenSumi, and we will show how to render our TodoList list with these components."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"data-structure","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#data-structure","ariaLabel":"data structure permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Data Structure"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In panels registered by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMainLayoutService"}]},{"type":"text","value":" service, components render with a default "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"viewState"}]},{"type":"text","value":" property, from which you can get the width and height of the entire panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"rendering-list","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#rendering-list","ariaLabel":"rendering list permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Rendering List"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We introduce "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"RecycleList"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CheckBox"}]},{"type":"text","value":" from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-components"}]},{"type":"text","value":".The following is the complete code after combination:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" styles "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.module.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" RecycleList"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CheckBox "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-components'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"template"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handlerChange"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"splice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todo_item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CheckBox\n          checked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          onChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handlerChange"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"RecycleList\n      height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"height"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      itemHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      template"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"template"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"results-show","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#results-show","ariaLabel":"results show permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Results Show"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN011vAfYR1PVVpp1V4WI_!!6000000001846-2-tps-2738-1810.png","alt":"List"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the next section, we will further learn how to use DI to work with rich framework services."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List"},"parent":{"relativePath":"develop/sample/display-list.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/sample/overview/page-data.json b/page-data/en/docs/develop/sample/overview/page-data.json
        index 40ef37c1..396f9313 100644
        --- a/page-data/en/docs/develop/sample/overview/page-data.json
        +++ b/page-data/en/docs/develop/sample/overview/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This case teaches you how to develop your own modules from scratch, step by step, by implementing a TodoList list in OpenSumi, and by this case you will gain some knowledge:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to create a module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to present a list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to use and register services by DI."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to use the contribution point mechanism."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to implement frontend and backend communication."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We aim to:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register a TodoList panel in the left explorer panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Display TodoList list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Suppport quick addition of Todo items by using shortcut keys."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Implement basic two-way communication logic between front and back end."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By studying this case, you will be able to quickly get started with OpenSumi's module development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, if you want to see the code directly, you can directly access the repo "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/todo-list-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/todo-list-sample"}]},{"type":"text","value":", and run projects to get some knowladge."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction"},"parent":{"relativePath":"develop/sample/overview.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This case teaches you how to develop your own modules from scratch, step by step, by implementing a TodoList list in OpenSumi, and by this case you will gain some knowledge:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to create a module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to present a list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to use and register services by DI."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to use the contribution point mechanism."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How to implement frontend and backend communication."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We aim to:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register a TodoList panel in the left explorer panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Display TodoList list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Suppport quick addition of Todo items by using shortcut keys."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Implement basic two-way communication logic between front and back end."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By studying this case, you will be able to quickly get started with OpenSumi's module development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, if you want to see the code directly, you can directly access the repo "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/todo-list-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/todo-list-sample"}]},{"type":"text","value":", and run projects to get some knowladge."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction"},"parent":{"relativePath":"develop/sample/overview.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/sample/use-contribution-point/page-data.json b/page-data/en/docs/develop/sample/use-contribution-point/page-data.json
        index ed582cf4..95579381 100644
        --- a/page-data/en/docs/develop/sample/use-contribution-point/page-data.json
        +++ b/page-data/en/docs/develop/sample/use-contribution-point/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/use-contribution-point","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In module development, You may need to deal with contribution points on a regular basis. In OpenSumi we implement a contribution point mechanism for many key logics. For more details, you can see "},{"type":"element","tagName":"a","properties":{"href":"../basic-design/contribution-point"},"children":[{"type":"text","value":"contribution points"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To register our TodoList list on the left Explorer panel, we need to use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"text","value":" to register the panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"create-a-front-view","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#create-a-front-view","ariaLabel":"create a front view permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Create a Front View"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"First, the following code shows a simple front-end presentation component:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" styles "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.module.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"h1 className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"Hello world"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"h1"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"create-a-contribution-point","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#create-a-contribution-point","ariaLabel":"create a contribution point permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Create a Contribution Point"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To create the"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"todo.contribution.ts"}]},{"type":"text","value":" file, you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"text","value":" contribution points to register our Todo panel in the OpenSumi rendering phase, see:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer/lib/browser/explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMainLayoutService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Todo "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Todo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'todo-view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Todo'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The preceding code registers our Todo component in the Explorer panel view during the rendering phase of OpenSumi, when we use the service capability provided by  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMainLayoutService"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, we need to show a declaration of the reference to contribution point file in the module entry file, as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"TodoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"results-preview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#results-preview","ariaLabel":"results preview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Results Preview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01l3ioLn1wWJr2kidlG_!!6000000006315-2-tps-2738-1810.png","alt":"Hello World"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the next section, we will learn how to further present our TodoList list information."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point"},"parent":{"relativePath":"develop/sample/use-contribution-point.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/use-contribution-point","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In module development, You may need to deal with contribution points on a regular basis. In OpenSumi we implement a contribution point mechanism for many key logics. For more details, you can see "},{"type":"element","tagName":"a","properties":{"href":"../basic-design/contribution-point"},"children":[{"type":"text","value":"contribution points"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To register our TodoList list on the left Explorer panel, we need to use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"text","value":" to register the panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"create-a-front-view","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#create-a-front-view","ariaLabel":"create a front view permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Create a Front View"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"First, the following code shows a simple front-end presentation component:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" styles "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.module.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"h1 className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"Hello world"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"h1"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"create-a-contribution-point","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#create-a-contribution-point","ariaLabel":"create a contribution point permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Create a Contribution Point"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To create the"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"todo.contribution.ts"}]},{"type":"text","value":" file, you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"text","value":" contribution points to register our Todo panel in the OpenSumi rendering phase, see:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer/lib/browser/explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMainLayoutService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Todo "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Todo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'todo-view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Todo'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The preceding code registers our Todo component in the Explorer panel view during the rendering phase of OpenSumi, when we use the service capability provided by  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMainLayoutService"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, we need to show a declaration of the reference to contribution point file in the module entry file, as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"TodoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"results-preview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#results-preview","ariaLabel":"results preview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Results Preview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01l3ioLn1wWJr2kidlG_!!6000000006315-2-tps-2738-1810.png","alt":"Hello World"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the next section, we will learn how to further present our TodoList list information."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point"},"parent":{"relativePath":"develop/sample/use-contribution-point.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/develop/sample/use-service-by-di/page-data.json b/page-data/en/docs/develop/sample/use-service-by-di/page-data.json
        index e21a9194..eeb22fb8 100644
        --- a/page-data/en/docs/develop/sample/use-service-by-di/page-data.json
        +++ b/page-data/en/docs/develop/sample/use-service-by-di/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/use-service-by-di","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"DI (Dependency Injection) is one of the core mechanisms of OpenSumi framework. By using DI, we can easily achieve the decoupling of dependencies and reuse of services. For more details, please see "},{"type":"element","tagName":"a","properties":{"href":"../basic-design/dependence-injector"},"children":[{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This section will start from use cases. Rgister "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" service When you are using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" service offered by the framework. Todo items switch state to display handover information."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"registration-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#registration-service","ariaLabel":"registration service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Registration Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Declare "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" service interface:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ITodoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Implement "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" services:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Register the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" service and its corresponding implementation:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.service'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-custom-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-custom-services","ariaLabel":"use custom services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Custom Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the view, we make "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" hook function as a service to register DI in the view layer. We can elicit the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" instance and use it by implementing the following code:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-built-in-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-built-in-services","ariaLabel":"use built in services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Built-in Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"message-notification","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message-notification","ariaLabel":"message notification permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Message Notification"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"All the capabilities in OpenSumi basically exist in the form of DIs, which can be easily introduced and used. For example, if we need a message notification feature, we can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" to get and use that feature."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By binding the trigger function when the Todo item is clicked, you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" to display the message directly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"template"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handlerChange"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"splice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Set "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":" to be "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todo_item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CheckBox\n          checked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          onChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handlerChange"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"RecycleList\n      height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"height"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      itemHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      template"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"template"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"effect-show","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#effect-show","ariaLabel":"effect show permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Effect Show"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01kA5rT529ilcreESVL_!!6000000008102-1-tps-1200-706.gif","alt":"message notification"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"add-items-using-shortcut-keys","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#add-items-using-shortcut-keys","ariaLabel":"add items using shortcut keys permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Add Items Using shortcut keys"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Further, we can also register commands and shortcut keys through the contribution point mechanism, with the ability to add Todo items with the help of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IQuickInputService"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" IQuickInputService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IQuickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" quickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IQuickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Emitter"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"get"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"addTodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"quickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      placeHolder"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Enter your plan'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"&&"}]},{"type":"text","value":" param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"fire"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"param"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Registration of commands and shortcut keys:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  localize\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer/lib/browser/explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMainLayoutService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Todo "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    KeybindingContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" todoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Todo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'todo-view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Todo'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ADD_TODO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addTodo"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cmd+o'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ADD_TODO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Introduce "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"text","value":" to the view so everytime after you adding a Todo item by shortcut keys, the item will be rendered and show up:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" onDidChange "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" disposable "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" value"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      disposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"results-show","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#results-show","ariaLabel":"results show permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Results Show"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01kAtflz1KZ6rsycc0r_!!6000000001177-1-tps-1200-706.gif","alt":"keybinding"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the next section, we will take a close look at both frontend and backend two-way communication to invoke a two-way service."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI"},"parent":{"relativePath":"develop/sample/use-service-by-di.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/develop/sample/use-service-by-di","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"DI (Dependency Injection) is one of the core mechanisms of OpenSumi framework. By using DI, we can easily achieve the decoupling of dependencies and reuse of services. For more details, please see "},{"type":"element","tagName":"a","properties":{"href":"../basic-design/dependence-injector"},"children":[{"type":"text","value":"Dependency Injection"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This section will start from use cases. Rgister "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" service When you are using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" service offered by the framework. Todo items switch state to display handover information."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"registration-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#registration-service","ariaLabel":"registration service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Registration Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Declare "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" service interface:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ITodoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Implement "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" services:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Register the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" service and its corresponding implementation:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.service'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-custom-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-custom-services","ariaLabel":"use custom services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Custom Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the view, we make "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" hook function as a service to register DI in the view layer. We can elicit the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" instance and use it by implementing the following code:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-built-in-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-built-in-services","ariaLabel":"use built in services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Built-in Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"message-notification","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message-notification","ariaLabel":"message notification permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Message Notification"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"All the capabilities in OpenSumi basically exist in the form of DIs, which can be easily introduced and used. For example, if we need a message notification feature, we can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" to get and use that feature."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By binding the trigger function when the Todo item is clicked, you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" to display the message directly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"template"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handlerChange"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"splice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Set "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":" to be "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todo_item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CheckBox\n          checked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          onChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handlerChange"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"RecycleList\n      height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"height"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      itemHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      template"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"template"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"effect-show","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#effect-show","ariaLabel":"effect show permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Effect Show"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01kA5rT529ilcreESVL_!!6000000008102-1-tps-1200-706.gif","alt":"message notification"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"add-items-using-shortcut-keys","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#add-items-using-shortcut-keys","ariaLabel":"add items using shortcut keys permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Add Items Using shortcut keys"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Further, we can also register commands and shortcut keys through the contribution point mechanism, with the ability to add Todo items with the help of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IQuickInputService"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" IQuickInputService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IQuickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" quickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IQuickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Emitter"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"get"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"addTodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"quickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      placeHolder"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Enter your plan'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"&&"}]},{"type":"text","value":" param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"fire"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"param"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Registration of commands and shortcut keys:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  localize\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer/lib/browser/explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMainLayoutService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Todo "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    KeybindingContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" todoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Todo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'todo-view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Todo'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ADD_TODO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addTodo"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cmd+o'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ADD_TODO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Introduce "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"text","value":" to the view so everytime after you adding a Todo item by shortcut keys, the item will be rendered and show up:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" onDidChange "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" disposable "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" value"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      disposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"results-show","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#results-show","ariaLabel":"results show permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Results Show"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01kAtflz1KZ6rsycc0r_!!6000000001177-1-tps-1200-706.gif","alt":"keybinding"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the next section, we will take a close look at both frontend and backend two-way communication to invoke a two-way service."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI"},"parent":{"relativePath":"develop/sample/use-service-by-di.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/contributes/menubars/page-data.json b/page-data/en/docs/extension/contributes/menubars/page-data.json
        index 7d0c48fe..4c112d68 100644
        --- a/page-data/en/docs/extension/contributes/menubars/page-data.json
        +++ b/page-data/en/docs/extension/contributes/menubars/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/contributes/menubars","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Contribute menu items to the top menu (Menubar) through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"view-position","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#view-position","ariaLabel":"view position permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"View position"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The menu located at the top of the overall IDE may differ slightly in the Electron environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01Uwnb991TdzoK9OYAt_!!6000000002406-2-tps-1000-426.png","alt":"Sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"how-to-register","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-register","ariaLabel":"how to register permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to register"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To add a single item to the menubar, you can register your menubar item through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":" field in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":", with the following data structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IContributedMenubarItem"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// As the menu-id of menubar-item, you can contribute menu items here through menus"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Display text"}]},{"type":"text","value":"\n  order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Sorting factor, the smaller the higher the front"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Among them, id and title are required items, and order is an optional item. If not filled, the position will be determined according to the default activation order of the extension."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sumiContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menubars\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.clone%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"order\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.commit\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"0_changes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"scmProvider == git\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        ...\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The final effect of the example is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01VLQjCz1iP598hWLQO_!!6000000004404-2-tps-1000-397.png","alt":"Sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For other menu registrations, see: "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.menus","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Menus Contribution Points"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars"},"parent":{"relativePath":"extension/contributes/menubars.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/contributes/menubars","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Contribute menu items to the top menu (Menubar) through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"view-position","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#view-position","ariaLabel":"view position permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"View position"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The menu located at the top of the overall IDE may differ slightly in the Electron environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01Uwnb991TdzoK9OYAt_!!6000000002406-2-tps-1000-426.png","alt":"Sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"how-to-register","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-register","ariaLabel":"how to register permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to register"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To add a single item to the menubar, you can register your menubar item through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":" field in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":", with the following data structure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IContributedMenubarItem"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// As the menu-id of menubar-item, you can contribute menu items here through menus"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Display text"}]},{"type":"text","value":"\n  order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Sorting factor, the smaller the higher the front"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Among them, id and title are required items, and order is an optional item. If not filled, the position will be determined according to the default activation order of the extension."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sumiContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menubars\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.clone%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"order\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.commit\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"0_changes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"scmProvider == git\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        ...\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The final effect of the example is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01VLQjCz1iP598hWLQO_!!6000000004404-2-tps-1000-397.png","alt":"Sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For other menu registrations, see: "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.menus","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Menus Contribution Points"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars"},"parent":{"relativePath":"extension/contributes/menubars.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/contributes/submenus/page-data.json b/page-data/en/docs/extension/contributes/submenus/page-data.json
        index 1607f168..1c525812 100644
        --- a/page-data/en/docs/extension/contributes/submenus/page-data.json
        +++ b/page-data/en/docs/extension/contributes/submenus/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/contributes/submenus","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Contribute submenu items via "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When you need to register a secondary menu, you can register your menubar item through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":" field in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":", where the data structure is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IContributedSubmenuItem"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// As the menu-id of submenu-id, you can contribute menu items here through menus"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// display text"}]},{"type":"text","value":"\n  group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Among them, id, title and icon are required items, and group is an optional item, which is used to define the grouping of the menu."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Use the below contributes:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sumiContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"submenus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.init%\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"tabbar/bottom/common\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.openRepository%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"light\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"resources/icons/light/git.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dark\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"resources/icons/dark/git.svg\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"settings/icon/menu\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_3\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.openRepository%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menubars\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.clone%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"order\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.init\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"config.git.enabled && !scmProvider && gitOpenRepositoryCount == 0 && workspaceFolderCount != 0\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.close\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.commit\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"scmProvider == git\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_3\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.stageAll\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"1_modification\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The registration effect under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tabbar/common/bottom"}]},{"type":"text","value":" position in the bottom panel:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01yBuGjj1CwS88iXbih_!!6000000000145-2-tps-364-346.png","alt":"Bottom"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Set the registration effect under the position of the button "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings/icon/menu"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN011kzOGr1fzm26GGINk_!!6000000004078-2-tps-400-216.png","alt":"Settings"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Registration effect under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tabbar/bottom/common"}]},{"type":"text","value":" position in the top TabBar area:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01smMtJR1krb2T7rYs9_!!6000000004737-0-tps-500-675.jpg","alt":"TabBar"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Actual business application effect (custom registration point):"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0110UjX71G8JELfZ9sT_!!6000000000577-2-tps-710-400.png","alt":"Custom"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"General menu registration, see: "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.menus","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Menus Contribution Points"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus"},"parent":{"relativePath":"extension/contributes/submenus.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/contributes/submenus","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Contribute submenu items via "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When you need to register a secondary menu, you can register your menubar item through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":" field in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":", where the data structure is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IContributedSubmenuItem"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// As the menu-id of submenu-id, you can contribute menu items here through menus"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// display text"}]},{"type":"text","value":"\n  group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Among them, id, title and icon are required items, and group is an optional item, which is used to define the grouping of the menu."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Use the below contributes:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sumiContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"submenus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.init%\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"tabbar/bottom/common\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.openRepository%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"light\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"resources/icons/light/git.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dark\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"resources/icons/dark/git.svg\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"settings/icon/menu\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_3\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.openRepository%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menubars\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.clone%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"order\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.init\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"config.git.enabled && !scmProvider && gitOpenRepositoryCount == 0 && workspaceFolderCount != 0\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.close\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.commit\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"scmProvider == git\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_3\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.stageAll\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"1_modification\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The registration effect under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tabbar/common/bottom"}]},{"type":"text","value":" position in the bottom panel:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01yBuGjj1CwS88iXbih_!!6000000000145-2-tps-364-346.png","alt":"Bottom"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Set the registration effect under the position of the button "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings/icon/menu"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN011kzOGr1fzm26GGINk_!!6000000004078-2-tps-400-216.png","alt":"Settings"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Registration effect under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tabbar/bottom/common"}]},{"type":"text","value":" position in the top TabBar area:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01smMtJR1krb2T7rYs9_!!6000000004737-0-tps-500-675.jpg","alt":"TabBar"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Actual business application effect (custom registration point):"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0110UjX71G8JELfZ9sT_!!6000000000577-2-tps-710-400.png","alt":"Custom"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"General menu registration, see: "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.menus","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Menus Contribution Points"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus"},"parent":{"relativePath":"extension/contributes/submenus.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/contributes/toolbar/page-data.json b/page-data/en/docs/extension/contributes/toolbar/page-data.json
        index 08dc280f..9dae98dc 100644
        --- a/page-data/en/docs/extension/contributes/toolbar/page-data.json
        +++ b/page-data/en/docs/extension/contributes/toolbar/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/contributes/toolbar","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By designed, the OpenSumi contribution points in the current framework need to be declared using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":". After upgrading to OpenSumi 2.25.0, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":" can be used to declare, and it will also be compatible with the old "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" declaration."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Toolbar is located on the right side of the top menu bar of the IDE by default. According to the configuration of different integrators, it can also be displayed as a separate column, similar to the Alipay applet developer tools. As shown below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01vZ7d8C1cyS0IU2qtR_!!6000000003669-2-tps-1685-86.png","alt":"sample1"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qSsHwA21oFZktRttG_!!6000000007031-2-tps-1651-87.png","alt":"sample2"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01cNra151YvvM7eJw2A_!!6000000003122-2-tps-1529-46.png","alt":"sample3"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Toolbar contribution point can describe the elements on the toolbar through JSON configuration. Currently, it supports button and select, which we call action. In some cases, it needs to be used with the Toolbar API."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"button-button","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#button-button","ariaLabel":"button button permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Button button"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"button is a clickable element that supports two display modes: icon only, icon + text, and the user can modify the button style by setting. In the plug-in, you can customize the button style and its icon by configuring the contributions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The action type of the button type is described as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Register the preferred position of this action, if strictPosition exists, this option is invalid\n   *\n   * rule:\n   * Note: Each location has two groups _head _tail by default, representing the first and last group\n   * 1. If the group value is provided, and the group is not _head and _tail\n   * 1. If the group has been registered, register it in the group and follow the group\n   * 3. If group is not registered\n   * 1. If the location exists, it will appear in the _tail of the specified location\n   * 2. If the location does not exist, it will appear in the _tail of the default location\n   * 2. If a group value is provided, and group is _head or _tail\n   * 1. If the location is registered, it will appear in the group location of the specified location.\n   * 2. If the location is not registered it will appear in the group location of the default location.\n   * 3. If only location value is provided\n   * 1. If the location is registered, it will appear in the _tail position of the specified location.\n   * 2. If the location is not registered it will appear in the _tail position of the default location.\n   * 4. If there is no position suggestion, it will appear in the _tail of the default location\n   *\n   * The real position will not be calculated repeatedly, it is only calculated when the Toolbar is rendered for the first time (onStart), or when the action is registered after rendering.\n   * But order will be calculated repeatedly.\n   */"}]},{"type":"text","value":"\n  preferredPosition"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n     * location refers to the position of a tool bar unit. Due to the different integration of the Kaitian framework, in different IDE integration products,\n     * There may be different optional values for location.\n     *\n     * Generally speaking, the default location of the desktop version will have\n     * toolbar-left (toolbar left)\n     * toolbar-right (the right side of the tool bar)\n     * toolbar-center (toolbar center)\n     *\n     * On the web version of the IDE, these two additional\n     * menu-left (top menu right to left)\n     * menu-right (top menu left to right)\n     *\n     *Other locations may require specific integration offerings\n     *\n     * Each integrated product will have a default location, if the location specified by preferredPosition cannot be found\n     * will be placed in the default locaiton\n     */"}]},{"type":"text","value":"\n    location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n     * Multiple buttons can be grouped, and there will be a dividing line between groups to indicate division\n     * At present, plugins can only be registered to the existing group of the integrated IDE button, but not a custom group, this feature may be added in the future\n     * Each location has two built-in groups of _head and _tail by default, which are used to represent the leftmost and rightmost of this location respectively\n     * Buttons without specified group will be placed in _tail by default\n     */"}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * If this value exists, the specified location will be searched forever.\n   * If the location cannot be found (such as location does not exist, or group does not exist), this button will not be displayed\n   */"}]},{"type":"text","value":"\n  strictPosition"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBtnStyle"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Whether to display the Title"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Default is false"}]},{"type":"text","value":"\n  showTitle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon foreground color"}]},{"type":"text","value":"\n  iconForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon background color"}]},{"type":"text","value":"\n  iconBackground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// title foreground color"}]},{"type":"text","value":"\n  titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// title background color"}]},{"type":"text","value":"\n  titleBackground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// overall background color"}]},{"type":"text","value":"\n  background"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// style type,"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// inline will not have an outer border"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button is the button style"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Default is button"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// inline mode showTitle will be invalid, only icon will be displayed"}]},{"type":"text","value":"\n  btnStyle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'inline'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button's text position style"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// vertical: upper icon lower text"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// horizontal: left icon right text"}]},{"type":"text","value":"\n  btnTitleStyle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vertical'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'horizontal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarButtonContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The command triggered after the button is clicked, if not specified, you need to bind the event through the API"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button text"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Button icon path, relative to the plug-in root directory, if the icon is in /path/to/ext/resource/a.svg, it needs to be written as resource/a.svg"}]},{"type":"text","value":"\n  iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon rendering mode, can be left blank in most cases"}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button state, here mainly refers to the style, similar to declaring a set of classname, the style state of the button can be changed through the API"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"&"}]},{"type":"text","value":" IToolbarActionBtnStyle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"define-button","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#define-button","ariaLabel":"define button permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Define button"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By declaring "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toolbar.actions"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":", you can register a button type action"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Indicates an action of type button"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Print\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./icons/gua.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"common-start\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Define several states of the button"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"btnTitleStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"horizontal\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// gray in clicked state"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"showTitle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"btnTitleStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"horizontal\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This renders an icon-only button on the right. Now clicking the button will not have any response, because the click event of the button has not been processed. There are two ways to handle the click event."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Binding Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Obtain the instance of the button through the Toolbar API, and listen to the click event"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"binding-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#binding-command","ariaLabel":"binding command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Binding Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the definition of the above contributions, add a command field for the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Print"}]},{"type":"text","value":" button:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Print\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button-click-command\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This command needs to be registered in the plug-in code, and it will be executed automatically when the button is clicked"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button-click-command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Print!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the example, we have customized a set of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clicked"}]},{"type":"text","value":" states, which can be switched to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clicked"}]},{"type":"text","value":" when clicked through the Toolbar API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button-click-command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-start'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Bingo!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01iENgIf1YZwLRIc4DT_!!6000000003074-1-tps-1200-805.gif","alt":"button-handle"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"customize-popover","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#customize-popover","ariaLabel":"customize popover permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Customize Popover"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Popover component that pops up after the Button is clicked can be specified in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" through declarative configuration. The code example is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// package.json #kaitianContributes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Popup\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./icons/book.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"popover-start\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"popover-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"popoverComponent\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"CustomPopover\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"popoverStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"minWidth\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"200\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"minHeight\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"200\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#FF004F\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Components need to be implemented by developers themselves and exported in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/index.ts"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" useEffect "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomPopover"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do something...'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'dispose custom popover...'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div style"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"200"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"200"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" padding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      Hello "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this code, a context object can be obtained from props, and the context can be dynamically updated by calling "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"actionHandler API"}]},{"type":"text","value":" from the plug-in Node side."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" action "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" kaitian"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sample-start'"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setInterval"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    action"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Update context value regularly"}]},{"type":"text","value":"\n      name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'World'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" Math"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"round"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Math"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"random"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"100"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1000"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01ybFiIV1Dz275918GL_!!6000000000286-1-tps-1298-706.gif","alt":"popover-sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"select-dropdown-option","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#select-dropdown-option","ariaLabel":"select dropdown option permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Select dropdown option"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Select is a selectable drop-down box, which can declare a set of value lists through contribution points. You can also bind a command to Select, or register selection events through Toolbar API."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The type declaration of the Select action is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarSelectContribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The command triggered after select is selected, and the new value can be obtained in the callback function"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// define a set of options"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// same as button"}]},{"type":"text","value":"\n    iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// display text"}]},{"type":"text","value":"\n    label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// value"}]},{"type":"text","value":"\n    value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Defaults"}]},{"type":"text","value":"\n  defaultValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The key used to compare whether the values ​​are equal"}]},{"type":"text","value":"\n  optionEqualityKey"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// style state"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarSelectStyle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"define-the-drop-down-box","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#define-the-drop-down-box","ariaLabel":"define the drop down box permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Define the drop-down box"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"An action of select type can be registered by declaring "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toolbar.actions"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n         "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"description\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"What to give for Children's Day\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// bind do-select command"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"do-select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"common-select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconMaskMode\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select dropdown value list"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"options\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/icons/gift.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"label\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"gift\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"value\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"gift\""}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/icons/book.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"label\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Five-year college entrance examination\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"value\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"book\""}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// default state"}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"labelForegroundColor\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#FF004F\""}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"labelForegroundColor\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n         "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"bind-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#bind-command","ariaLabel":"bind command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"bind command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"do-select"}]},{"type":"text","value":" command is bound in the example, which needs to be registered in the plugin code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01tEsczk1y1IOZVebUg_!!6000000006518-1-tps-1200-805.gif","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"update-options","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#update-options","ariaLabel":"update options permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Update Options"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After getting the selectHandle with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"text","value":", you can call the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"text","value":" method to update its option list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Five-year college entrance examination'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/book2.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Three-Year Simulation'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book2'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"update-selected-items","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#update-selected-items","ariaLabel":"update selected items permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Update selected items"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After getting the selectHandle with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"text","value":", you can call the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"setSelect"}]},{"type":"text","value":" method to update its option list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" kaitian "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kaitian'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Five-year college entrance examination'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/book2.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Three-Year Simulation'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book2'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSelect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// \"Five-year college entrance examination\" will be selected here"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example-repository","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-repository","ariaLabel":"example repository permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example repository"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/blob/c993b8b3e47845fe63dc339858ae27a99b3c78c3/toolbar-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - toolbar sample"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar"},"parent":{"relativePath":"extension/contributes/toolbar.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/contributes/toolbar","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By designed, the OpenSumi contribution points in the current framework need to be declared using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":". After upgrading to OpenSumi 2.25.0, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":" can be used to declare, and it will also be compatible with the old "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" declaration."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Toolbar is located on the right side of the top menu bar of the IDE by default. According to the configuration of different integrators, it can also be displayed as a separate column, similar to the Alipay applet developer tools. As shown below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01vZ7d8C1cyS0IU2qtR_!!6000000003669-2-tps-1685-86.png","alt":"sample1"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qSsHwA21oFZktRttG_!!6000000007031-2-tps-1651-87.png","alt":"sample2"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01cNra151YvvM7eJw2A_!!6000000003122-2-tps-1529-46.png","alt":"sample3"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Toolbar contribution point can describe the elements on the toolbar through JSON configuration. Currently, it supports button and select, which we call action. In some cases, it needs to be used with the Toolbar API."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"button-button","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#button-button","ariaLabel":"button button permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Button button"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"button is a clickable element that supports two display modes: icon only, icon + text, and the user can modify the button style by setting. In the plug-in, you can customize the button style and its icon by configuring the contributions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The action type of the button type is described as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Register the preferred position of this action, if strictPosition exists, this option is invalid\n   *\n   * rule:\n   * Note: Each location has two groups _head _tail by default, representing the first and last group\n   * 1. If the group value is provided, and the group is not _head and _tail\n   * 1. If the group has been registered, register it in the group and follow the group\n   * 3. If group is not registered\n   * 1. If the location exists, it will appear in the _tail of the specified location\n   * 2. If the location does not exist, it will appear in the _tail of the default location\n   * 2. If a group value is provided, and group is _head or _tail\n   * 1. If the location is registered, it will appear in the group location of the specified location.\n   * 2. If the location is not registered it will appear in the group location of the default location.\n   * 3. If only location value is provided\n   * 1. If the location is registered, it will appear in the _tail position of the specified location.\n   * 2. If the location is not registered it will appear in the _tail position of the default location.\n   * 4. If there is no position suggestion, it will appear in the _tail of the default location\n   *\n   * The real position will not be calculated repeatedly, it is only calculated when the Toolbar is rendered for the first time (onStart), or when the action is registered after rendering.\n   * But order will be calculated repeatedly.\n   */"}]},{"type":"text","value":"\n  preferredPosition"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n     * location refers to the position of a tool bar unit. Due to the different integration of the Kaitian framework, in different IDE integration products,\n     * There may be different optional values for location.\n     *\n     * Generally speaking, the default location of the desktop version will have\n     * toolbar-left (toolbar left)\n     * toolbar-right (the right side of the tool bar)\n     * toolbar-center (toolbar center)\n     *\n     * On the web version of the IDE, these two additional\n     * menu-left (top menu right to left)\n     * menu-right (top menu left to right)\n     *\n     *Other locations may require specific integration offerings\n     *\n     * Each integrated product will have a default location, if the location specified by preferredPosition cannot be found\n     * will be placed in the default locaiton\n     */"}]},{"type":"text","value":"\n    location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n     * Multiple buttons can be grouped, and there will be a dividing line between groups to indicate division\n     * At present, plugins can only be registered to the existing group of the integrated IDE button, but not a custom group, this feature may be added in the future\n     * Each location has two built-in groups of _head and _tail by default, which are used to represent the leftmost and rightmost of this location respectively\n     * Buttons without specified group will be placed in _tail by default\n     */"}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * If this value exists, the specified location will be searched forever.\n   * If the location cannot be found (such as location does not exist, or group does not exist), this button will not be displayed\n   */"}]},{"type":"text","value":"\n  strictPosition"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBtnStyle"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Whether to display the Title"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Default is false"}]},{"type":"text","value":"\n  showTitle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon foreground color"}]},{"type":"text","value":"\n  iconForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon background color"}]},{"type":"text","value":"\n  iconBackground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// title foreground color"}]},{"type":"text","value":"\n  titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// title background color"}]},{"type":"text","value":"\n  titleBackground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// overall background color"}]},{"type":"text","value":"\n  background"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// style type,"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// inline will not have an outer border"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button is the button style"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Default is button"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// inline mode showTitle will be invalid, only icon will be displayed"}]},{"type":"text","value":"\n  btnStyle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'inline'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button's text position style"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// vertical: upper icon lower text"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// horizontal: left icon right text"}]},{"type":"text","value":"\n  btnTitleStyle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vertical'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'horizontal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarButtonContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The command triggered after the button is clicked, if not specified, you need to bind the event through the API"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button text"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Button icon path, relative to the plug-in root directory, if the icon is in /path/to/ext/resource/a.svg, it needs to be written as resource/a.svg"}]},{"type":"text","value":"\n  iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon rendering mode, can be left blank in most cases"}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button state, here mainly refers to the style, similar to declaring a set of classname, the style state of the button can be changed through the API"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"&"}]},{"type":"text","value":" IToolbarActionBtnStyle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"define-button","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#define-button","ariaLabel":"define button permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Define button"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By declaring "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toolbar.actions"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":", you can register a button type action"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Indicates an action of type button"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Print\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./icons/gua.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"common-start\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Define several states of the button"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"btnTitleStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"horizontal\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// gray in clicked state"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"showTitle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"btnTitleStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"horizontal\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This renders an icon-only button on the right. Now clicking the button will not have any response, because the click event of the button has not been processed. There are two ways to handle the click event."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Binding Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Obtain the instance of the button through the Toolbar API, and listen to the click event"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"binding-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#binding-command","ariaLabel":"binding command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Binding Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the definition of the above contributions, add a command field for the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Print"}]},{"type":"text","value":" button:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Print\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button-click-command\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This command needs to be registered in the plug-in code, and it will be executed automatically when the button is clicked"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button-click-command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Print!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the example, we have customized a set of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clicked"}]},{"type":"text","value":" states, which can be switched to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clicked"}]},{"type":"text","value":" when clicked through the Toolbar API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button-click-command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-start'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Bingo!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01iENgIf1YZwLRIc4DT_!!6000000003074-1-tps-1200-805.gif","alt":"button-handle"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"customize-popover","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#customize-popover","ariaLabel":"customize popover permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Customize Popover"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Popover component that pops up after the Button is clicked can be specified in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" through declarative configuration. The code example is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// package.json #kaitianContributes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Popup\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./icons/book.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"popover-start\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"popover-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"popoverComponent\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"CustomPopover\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"popoverStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"minWidth\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"200\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"minHeight\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"200\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#FF004F\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Components need to be implemented by developers themselves and exported in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/index.ts"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" useEffect "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kaitian-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomPopover"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do something...'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'dispose custom popover...'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div style"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"200"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"200"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" padding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      Hello "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"button\n        onClick"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'popup.testCommand'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        Execute Command\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this code, a context object can be obtained from props, and the context can be dynamically updated by calling "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"actionHandler API"}]},{"type":"text","value":" from the plug-in Node side."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Popover can obtain the state passed in by NodeJS from props.context, and it can also use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"commands.executeCommand"}]},{"type":"text","value":" to invoke the Commands registered in NodeJS."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" action "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" kaitian"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sample-start'"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  kaitian"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'popup.testCommand'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'command executed'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  action"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    action"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showPopover"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setInterval"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    action"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Update context value regularly"}]},{"type":"text","value":"\n      name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'World'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" Math"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"round"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Math"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"random"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"100"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1000"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01ybFiIV1Dz275918GL_!!6000000000286-1-tps-1298-706.gif","alt":"popover-sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"select-dropdown-option","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#select-dropdown-option","ariaLabel":"select dropdown option permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Select dropdown option"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Select is a selectable drop-down box, which can declare a set of value lists through contribution points. You can also bind a command to Select, or register selection events through Toolbar API."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The type declaration of the Select action is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarSelectContribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The command triggered after select is selected, and the new value can be obtained in the callback function"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// define a set of options"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// same as button"}]},{"type":"text","value":"\n    iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// display text"}]},{"type":"text","value":"\n    label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// value"}]},{"type":"text","value":"\n    value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Defaults"}]},{"type":"text","value":"\n  defaultValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The key used to compare whether the values ​​are equal"}]},{"type":"text","value":"\n  optionEqualityKey"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// style state"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarSelectStyle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"define-the-drop-down-box","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#define-the-drop-down-box","ariaLabel":"define the drop down box permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Define the drop-down box"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"An action of select type can be registered by declaring "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toolbar.actions"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n         "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"description\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"What to give for Children's Day\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// bind do-select command"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"do-select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"common-select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconMaskMode\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select dropdown value list"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"options\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/icons/gift.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"label\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"gift\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"value\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"gift\""}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/icons/book.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"label\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Five-year college entrance examination\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"value\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"book\""}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// default state"}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"labelForegroundColor\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#FF004F\""}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n               "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"labelForegroundColor\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"text","value":"\n             "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n           "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n         "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"bind-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#bind-command","ariaLabel":"bind command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"bind command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"do-select"}]},{"type":"text","value":" command is bound in the example, which needs to be registered in the plugin code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01tEsczk1y1IOZVebUg_!!6000000006518-1-tps-1200-805.gif","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"update-options","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#update-options","ariaLabel":"update options permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Update Options"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After getting the selectHandle with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"text","value":", you can call the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"text","value":" method to update its option list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Five-year college entrance examination'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/book2.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Three-Year Simulation'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book2'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"update-selected-items","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#update-selected-items","ariaLabel":"update selected items permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Update selected items"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After getting the selectHandle with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"text","value":", you can call the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"setSelect"}]},{"type":"text","value":" method to update its option list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" kaitian "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kaitian'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Five-year college entrance examination'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/book2.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Three-Year Simulation'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book2'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSelect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// \"Five-year college entrance examination\" will be selected here"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example-repository","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-repository","ariaLabel":"example repository permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example repository"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/blob/c993b8b3e47845fe63dc339858ae27a99b3c78c3/toolbar-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - toolbar sample"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar"},"parent":{"relativePath":"extension/contributes/toolbar.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/develop/built-in-command/page-data.json b/page-data/en/docs/extension/develop/built-in-command/page-data.json
        index 60630430..127fc80b 100644
        --- a/page-data/en/docs/extension/develop/built-in-command/page-data.json
        +++ b/page-data/en/docs/extension/develop/built-in-command/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/built-in-command","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides a set of built-in commands, which partially implement the built-in commands of VS Code. These commands may be used in some plug-ins. If you encounter built-in commands that are not implemented, you can go to [OpenSumi Issues]("},{"type":"element","tagName":"a","properties":{"href":"https://github","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github"}]},{"type":"text","value":" .com/opensumi/core/issues) for adaptation requirements."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"built-in-command-set","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#built-in-command-set","ariaLabel":"built in command set permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Built-in command set"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"command"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"function"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"parameter"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"revealInExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Locate file in explorer interface"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set Context variable value"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"key"}]},{"type":"text","value":": key, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"value"}]},{"type":"text","value":": value"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close the currently active editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.revertAndCloseActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reverts the current file content and closes the active editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Split the current editor to the right"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Split the current editor down"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.newUntitledFile"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create a new temporary editor file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeAllEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"close all editors"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeOtherEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"close other editors"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.save"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Save current file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file and split right"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":": ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorOrthogonal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file and split down"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":": ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateLeft"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to left editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateUp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"switch to top editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to right editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"switch to bottom editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateEditorGroups"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Navigate Editor Groups"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.nextEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to next file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.previousEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to previous file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openEditorAtIndex"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open editor by subscript position"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.revert"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reverts the currently active file content"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.clear"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Clear the contents of the currently active terminal window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.toggleTerminal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Toggle Terminal Window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.files.action.focusFilesExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the active editor group"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.open"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file (only available under Electron)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.openFolder"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"open folder (only available under Electron)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.reloadWindow (reload_window)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"reload window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Copy file absolute path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyRelativeFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Relative file path to copy"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openSettings"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open Settings panel"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateBack"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Go to previous editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateForward"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Navigate to the next editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.saveAll"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"save all files"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug StepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOut"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug step out"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOver"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug stepping"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.continue"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug continue"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.run (workbench.action.debug.start)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug run"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.pause"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug pause"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.restart"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug restart"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stop"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug stop"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.showAllSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Show all symbols"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#usage","ariaLabel":"usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.open"}]},{"type":"text","value":" to open a file with a protocol"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Parameter Description"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"VSCodeOpen"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  resource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  columnOrOptions"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ViewColumn "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"TextDocumentShowOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nsumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode. open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    preserveFocus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    preview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"TextDocumentShowOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-title'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command"},"parent":{"relativePath":"extension/develop/built-in-command.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/built-in-command","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides a set of built-in commands, which partially implement the built-in commands of VS Code. These commands may be used in some plug-ins. If you encounter built-in commands that are not implemented, you can go to [OpenSumi Issues]("},{"type":"element","tagName":"a","properties":{"href":"https://github","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github"}]},{"type":"text","value":" .com/opensumi/core/issues) for adaptation requirements."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"built-in-command-set","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#built-in-command-set","ariaLabel":"built in command set permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Built-in command set"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"command"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"function"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"parameter"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"revealInExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Locate file in explorer interface"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set Context variable value"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"key"}]},{"type":"text","value":": key, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"value"}]},{"type":"text","value":": value"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close the currently active editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.revertAndCloseActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reverts the current file content and closes the active editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Split the current editor to the right"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Split the current editor down"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.newUntitledFile"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create a new temporary editor file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeAllEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"close all editors"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeOtherEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"close other editors"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.save"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Save current file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file and split right"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":": ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorOrthogonal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file and split down"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":": ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateLeft"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to left editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateUp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"switch to top editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to right editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"switch to bottom editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateEditorGroups"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Navigate Editor Groups"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.nextEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to next file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.previousEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to previous file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openEditorAtIndex"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open editor by subscript position"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.revert"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reverts the currently active file content"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.clear"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Clear the contents of the currently active terminal window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.toggleTerminal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Toggle Terminal Window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.files.action.focusFilesExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the active editor group"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.open"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file (only available under Electron)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.openFolder"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"open folder (only available under Electron)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.reloadWindow (reload_window)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"reload window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Copy file absolute path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyRelativeFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Relative file path to copy"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openSettings"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open Settings panel"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateBack"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Go to previous editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateForward"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Navigate to the next editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.saveAll"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"save all files"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug StepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOut"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug step out"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOver"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug stepping"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.continue"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug continue"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.run (workbench.action.debug.start)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug run"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.pause"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug pause"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.restart"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug restart"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stop"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"debug stop"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.showAllSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Show all symbols"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#usage","ariaLabel":"usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.open"}]},{"type":"text","value":" to open a file with a protocol"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Parameter Description"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"VSCodeOpen"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  resource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  columnOrOptions"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ViewColumn "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"TextDocumentShowOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nsumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode. open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    preserveFocus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    preview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"TextDocumentShowOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-title'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command"},"parent":{"relativePath":"extension/develop/built-in-command.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/develop/built-in-component/page-data.json b/page-data/en/docs/extension/develop/built-in-component/page-data.json
        index beb2bc1d..6725c34a 100644
        --- a/page-data/en/docs/extension/develop/built-in-component/page-data.json
        +++ b/page-data/en/docs/extension/develop/built-in-component/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/built-in-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi has built-in some basic components, which can be imported and used through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" module when the browser-side plug-in is running."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current built-in components include:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"├── Badge\n├── Button\n├── Checkbox\n├── Dialog\n├── Icon\n├── Input\n├── Message\n├── Notification\n├── Overlay\n├── Popover\n├── RecycleList\n├── BasicRecycleTree\n├── Scrollbars\n├── Select\n├── Tabs\n├── Tooltip\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For some usage examples, see: "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Built-in Components"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"other-component-libraries","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#other-component-libraries","ariaLabel":"other component libraries permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Other component libraries"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also continue to use the popular "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AntD"}]},{"type":"text","value":" component library in the community in OpenSumi, and you only need to import the theme package we provide to use it normally."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" - AntD theme package based on OpenSumi"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The usage is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/antd-theme/lib/index.css'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ConfigProvider "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ConfigProvider"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"prefixCls"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"sumi_antd"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"App"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"/>"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其他主题库适配期待社区的贡献。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"自定义适配主题的组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%80%82%E9%85%8D%E4%B8%BB%E9%A2%98%E7%9A%84%E7%BB%84%E4%BB%B6","ariaLabel":"自定义适配主题的组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义适配主题的组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For developers who do not meet the above schemes, or expect to write their own CSS styles to adapt to the theme, you can refer to the Token table below to use the corresponding CSS Token, such as Token is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kt.disableForeground"}]},{"type":"text","value":", you can pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"var( --kt-disableForeground)"}]},{"type":"text","value":" reference."}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Blocks"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Doc"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"主题色板"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/%E4%B8%BB%E9%A2%98%E8%89%B2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"主题色板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"基础颜色"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/%E5%9F%BA%E7%A1%80%E9%A2%9C%E8%89%B2","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"基础颜色"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Button"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Button-%E6%8C%89%E9%92%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Button 按钮"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Checkbox"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Checkbox-%E5%A4%9A%E9%80%89%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Checkbox 多选框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Input"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Input-%E8%BE%93%E5%85%A5%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Input 输入框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Select"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Select-%E9%80%89%E6%8B%A9%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Select 选择器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Editor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Editor-%E7%BC%96%E8%BE%91%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Editor 编辑器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ActionBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ActionBar-%E6%93%8D%E4%BD%9C%E7%BB%84","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ActionBar 操作组"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ActivityBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ActivityBar-%E5%B7%A6%E5%8F%B3%E4%BE%A7%E6%B4%BB%E5%8A%A8%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ActivityBar 左右侧活动栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Bottom Panel"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Bottom-Panel-%E5%BA%95%E9%83%A8%E9%9D%A2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Bottom Panel 底部面板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Explorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Explorer-%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Explorer 资源管理器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Keybinding"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Keybinding-%E5%BF%AB%E6%8D%B7%E9%94%AE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Keybinding 快捷键页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"MenuBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/MenuBar-%E8%8F%9C%E5%8D%95%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MenuBar 菜单栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Message"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Message-%E5%85%A8%E5%B1%80%E6%8F%90%E7%A4%BA","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Message 全局提示"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Modal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Modal-%E5%AF%B9%E8%AF%9D%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Modal 对话框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Notification"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Notification-%E9%80%9A%E7%9F%A5%E6%8F%90%E9%86%92%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Notification 通知提醒框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Popover"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Popover-%E6%B0%94%E6%B3%A1%E5%8D%A1%E7%89%87","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Popover 气泡卡片"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"SCM"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/SCM-%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"SCM 源代码管理"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Search"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Search-%E6%90%9C%E7%B4%A2","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Search 搜索"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Setting"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Setting-%E8%AE%BE%E7%BD%AE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Setting 设置页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Sidebar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Sidebar-%E4%BE%A7%E8%BE%B9%E6%A0%8F%E9%9D%A2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Sidebar 侧边栏面板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"StatusBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/StatusBar-%E5%BA%95%E9%83%A8%E7%8A%B6%E6%80%81%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"StatusBar 底部状态栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Tab"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Tab-%E6%A0%87%E7%AD%BE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Tab 标签页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ToolBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ToolBar-%E5%B7%A5%E5%85%B7%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ToolBar 工具栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Tooltip"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Tooltip-%E6%96%87%E5%AD%97%E6%8F%90%E7%A4%BA","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Tooltip 文字提示"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Most custom tokens are usually backward compatible with "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/theme-color","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Theme Color"}]},{"type":"text","value":" of VS Code, and you can also use these tokens directly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you feel that the definition of this part of the color value table cannot meet your needs, on the one hand, you can consider providing a PR for OpenSumi to expand it, on the other hand, you can also bypass this part of the limitation by processing it on the integration side To solve, two common methods are introduced below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"style-customization-by-classname","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#style-customization-by-classname","ariaLabel":"style customization by classname permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Style customization by ClassName"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Customize through the scope of ClassName, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"css"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-css"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-css"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".vs-dark"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"color"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" #fff"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" // Dark Theme Model"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" the text will be white\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".vs"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"color"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" #000"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" // Light Theme Model"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" the text will be black\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"use-the-code-classlanguage-textregistercolorcode-method-to-register-a-custom-token","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-the-code-classlanguage-textregistercolorcode-method-to-register-a-custom-token","ariaLabel":"use the code classlanguage textregistercolorcode method to register a custom token permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"text","value":" method to register a custom token"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It should be noted here that it is necessary to ensure that the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"text","value":" method is called before the application starts, and it is recommended to introduce it in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"text","value":" phase."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The entry file"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./custom-token'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// custom-token.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registerColor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonClickBackground\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonSelectionForeground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.selectionForeground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Active toolbar button foreground.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonSelectionBackground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.selectionBackground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Active toolbar button background.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonForeground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.foreground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Default toolbar button foreground.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonBackground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.background'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonClickBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonClickBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Default toolbar button background.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-floating-components","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-floating-components","ariaLabel":"use floating components permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use floating components"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When writing extensions, we will inevitably use floating windows to allow users to perform secondary interactions. When writing such codes on the OpenSumi Browser side, since the overall solution adopts a sandbox isolation mechanism, the Browser layer in the extension cannot get the top "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Document"}]},{"type":"text","value":", so when using components with floating properties such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Modal"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Select"}]},{"type":"text","value":" in some libraries, you need to re-bind a rendering container for such components."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Take the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Modal"}]},{"type":"text","value":" component in AntD as an example, you need to pass in the rendering container of the current component when using it, otherwise the corresponding component will not work properly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Modal"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"title"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"Basic Modal"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"ref"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component"},"parent":{"relativePath":"extension/develop/built-in-component.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/built-in-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi has built-in some basic components, which can be imported and used through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" module when the browser-side plug-in is running."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The current built-in components include:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"├── Badge\n├── Button\n├── Checkbox\n├── Dialog\n├── Icon\n├── Input\n├── Message\n├── Notification\n├── Overlay\n├── Popover\n├── RecycleList\n├── BasicRecycleTree\n├── Scrollbars\n├── Select\n├── Tabs\n├── Tooltip\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For some usage examples, see: "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Built-in Components"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"other-component-libraries","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#other-component-libraries","ariaLabel":"other component libraries permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Other component libraries"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also continue to use the popular "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AntD"}]},{"type":"text","value":" component library in the community in OpenSumi, and you only need to import the theme package we provide to use it normally."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" - AntD theme package based on OpenSumi"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The usage is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/antd-theme/lib/index.css'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ConfigProvider "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ConfigProvider"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"prefixCls"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"sumi_antd"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"App"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"/>"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其他主题库适配期待社区的贡献。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"自定义适配主题的组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%80%82%E9%85%8D%E4%B8%BB%E9%A2%98%E7%9A%84%E7%BB%84%E4%BB%B6","ariaLabel":"自定义适配主题的组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义适配主题的组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For developers who do not meet the above schemes, or expect to write their own CSS styles to adapt to the theme, you can refer to the Token table below to use the corresponding CSS Token, such as Token is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kt.disableForeground"}]},{"type":"text","value":", you can pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"var( --kt-disableForeground)"}]},{"type":"text","value":" reference."}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Blocks"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Doc"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"主题色板"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/%E4%B8%BB%E9%A2%98%E8%89%B2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"主题色板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"基础颜色"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/%E5%9F%BA%E7%A1%80%E9%A2%9C%E8%89%B2","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"基础颜色"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Button"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Button-%E6%8C%89%E9%92%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Button 按钮"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Checkbox"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Checkbox-%E5%A4%9A%E9%80%89%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Checkbox 多选框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Input"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Input-%E8%BE%93%E5%85%A5%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Input 输入框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Select"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Select-%E9%80%89%E6%8B%A9%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Select 选择器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Editor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Editor-%E7%BC%96%E8%BE%91%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Editor 编辑器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ActionBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ActionBar-%E6%93%8D%E4%BD%9C%E7%BB%84","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ActionBar 操作组"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ActivityBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ActivityBar-%E5%B7%A6%E5%8F%B3%E4%BE%A7%E6%B4%BB%E5%8A%A8%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ActivityBar 左右侧活动栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Bottom Panel"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Bottom-Panel-%E5%BA%95%E9%83%A8%E9%9D%A2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Bottom Panel 底部面板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Explorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Explorer-%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Explorer 资源管理器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Keybinding"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Keybinding-%E5%BF%AB%E6%8D%B7%E9%94%AE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Keybinding 快捷键页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"MenuBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/MenuBar-%E8%8F%9C%E5%8D%95%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MenuBar 菜单栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Message"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Message-%E5%85%A8%E5%B1%80%E6%8F%90%E7%A4%BA","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Message 全局提示"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Modal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Modal-%E5%AF%B9%E8%AF%9D%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Modal 对话框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Notification"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Notification-%E9%80%9A%E7%9F%A5%E6%8F%90%E9%86%92%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Notification 通知提醒框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Popover"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Popover-%E6%B0%94%E6%B3%A1%E5%8D%A1%E7%89%87","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Popover 气泡卡片"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"SCM"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/SCM-%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"SCM 源代码管理"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Search"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Search-%E6%90%9C%E7%B4%A2","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Search 搜索"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Setting"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Setting-%E8%AE%BE%E7%BD%AE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Setting 设置页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Sidebar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Sidebar-%E4%BE%A7%E8%BE%B9%E6%A0%8F%E9%9D%A2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Sidebar 侧边栏面板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"StatusBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/StatusBar-%E5%BA%95%E9%83%A8%E7%8A%B6%E6%80%81%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"StatusBar 底部状态栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Tab"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Tab-%E6%A0%87%E7%AD%BE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Tab 标签页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ToolBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ToolBar-%E5%B7%A5%E5%85%B7%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ToolBar 工具栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Tooltip"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Tooltip-%E6%96%87%E5%AD%97%E6%8F%90%E7%A4%BA","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Tooltip 文字提示"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Most custom tokens are usually backward compatible with "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/theme-color","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Theme Color"}]},{"type":"text","value":" of VS Code, and you can also use these tokens directly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you feel that the definition of this part of the color value table cannot meet your needs, on the one hand, you can consider providing a PR for OpenSumi to expand it, on the other hand, you can also bypass this part of the limitation by processing it on the integration side To solve, two common methods are introduced below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"style-customization-by-classname","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#style-customization-by-classname","ariaLabel":"style customization by classname permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Style customization by ClassName"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Customize through the scope of ClassName, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"css"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-css"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-css"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".vs-dark"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"color"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" #fff"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" // Dark Theme Model"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" the text will be white\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".vs"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"color"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" #000"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" // Light Theme Model"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" the text will be black\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"use-the-code-classlanguage-textregistercolorcode-method-to-register-a-custom-token","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-the-code-classlanguage-textregistercolorcode-method-to-register-a-custom-token","ariaLabel":"use the code classlanguage textregistercolorcode method to register a custom token permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"text","value":" method to register a custom token"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It should be noted here that it is necessary to ensure that the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"text","value":" method is called before the application starts, and it is recommended to introduce it in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"text","value":" phase."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// The entry file"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./custom-token'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// custom-token.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registerColor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonClickBackground\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonSelectionForeground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.selectionForeground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Active toolbar button foreground.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonSelectionBackground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.selectionBackground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Active toolbar button background.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonForeground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.foreground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Default toolbar button foreground.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonBackground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.background'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonClickBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonClickBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Default toolbar button background.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-floating-components","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-floating-components","ariaLabel":"use floating components permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use floating components"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When writing extensions, we will inevitably use floating windows to allow users to perform secondary interactions. When writing such codes on the OpenSumi Browser side, since the overall solution adopts a sandbox isolation mechanism, the Browser layer in the extension cannot get the top "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Document"}]},{"type":"text","value":", so when using components with floating properties such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Modal"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Select"}]},{"type":"text","value":" in some libraries, you need to re-bind a rendering container for such components."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Take the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Modal"}]},{"type":"text","value":" component in AntD as an example, you need to pass in the rendering container of the current component when using it, otherwise the corresponding component will not work properly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Modal"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"title"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"Basic Modal"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"ref"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component"},"parent":{"relativePath":"extension/develop/built-in-component.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/develop/built-in-icon/page-data.json b/page-data/en/docs/extension/develop/built-in-icon/page-data.json
        index 5be99cda..1a1f10ed 100644
        --- a/page-data/en/docs/extension/develop/built-in-icon/page-data.json
        +++ b/page-data/en/docs/extension/develop/built-in-icon/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/built-in-icon","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides a set of built-in icon sets, these icons are maintained based on "},{"type":"element","tagName":"a","properties":{"href":"https://www.iconfont.cn/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"iconfont"}]},{"type":"text","value":", you can directly use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"iconClass: "}]},{"type":"text","value":" to reference when registering panels such as views these icons."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"opensumi-built-in-icon-list","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#opensumi-built-in-icon-list","ariaLabel":"opensumi built in icon list permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"OpenSumi built-in icon list"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01zxObcW27Z25ygkmuZ_!!6000000007810-2-tps-2920-1566.png","alt":"Built-in Icon"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Online address: "},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.github.io/core/iconfont.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi built-in icon list"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons"},"parent":{"relativePath":"extension/develop/built-in-icon.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/built-in-icon","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides a set of built-in icon sets, these icons are maintained based on "},{"type":"element","tagName":"a","properties":{"href":"https://www.iconfont.cn/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"iconfont"}]},{"type":"text","value":", you can directly use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"iconClass: "}]},{"type":"text","value":" to reference when registering panels such as views these icons."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"opensumi-built-in-icon-list","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#opensumi-built-in-icon-list","ariaLabel":"opensumi built in icon list permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"OpenSumi built-in icon list"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01zxObcW27Z25ygkmuZ_!!6000000007810-2-tps-2920-1566.png","alt":"Built-in Icon"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Online address: "},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.github.io/core/iconfont.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi built-in icon list"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons"},"parent":{"relativePath":"extension/develop/built-in-icon.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/develop/connection-mode/page-data.json b/page-data/en/docs/extension/develop/connection-mode/page-data.json
        index dde7b8ee..bde1fdbb 100644
        --- a/page-data/en/docs/extension/develop/connection-mode/page-data.json
        +++ b/page-data/en/docs/extension/develop/connection-mode/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/connection-mode","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi extension supports extensions in both Browser and Node environments. Generally, we recommend that you only register views at the Browser entry and write extension business logic in the Node entry."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"front-end-and-back-end-communication","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#front-end-and-back-end-communication","ariaLabel":"front end and back end communication permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Front-end and Back-end communication"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01jgVXs41u6YSrFgIZY_!!6000000005988-2-tps-362-120.png","alt":"Click"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Considering the above scenario, I want to pop up an error message when the button is clicked. This requires declaring a button in the left area of the extension at the Browser entry and implementing the logic to pop up the error message in the Node entry of the extension."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-entry","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-entry","ariaLabel":"browser entry permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Implement the component in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/browser/Leftview.tsx"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/browser/Leftview.tsx"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Button "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@ali/ide-components'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" Leftview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IComponentProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"INodeService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  sumiExtendService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" defaultTitle "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Click'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"title"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTitle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"defaultTitle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidUpdateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"val"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"defaultTitle "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"' '"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" val"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        updateTitle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" onDidUpdateTitle\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumiExtendService.node is an API Proxy"}]},{"type":"text","value":"\n    sumiExtendService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"node"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Button"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"size"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"small"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handleClick"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"Title"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Export components under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/browser/index.ts"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Leftview "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./toolbar-button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Leftview "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Declare where and how components are rendered in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// package.json"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"browserMain\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./out/browser/index.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"nodeMain\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./out/node/index.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"viewsProxies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Leftview\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"browserViews\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"left\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"add\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"view\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Leftview\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"extension\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this code, we declare a view whose rendering position is the position of the left sidebar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the component, we bind an event handler to the button, and call the method from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"props.sumiExtendService.node"}]},{"type":"text","value":" when clicked (please note that this is a proxy of the extension Node entry API, this code will not be directly in the running in a Node environment)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, we also bind an "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"text","value":" method in the Browser entry, which can also be called in the subsequent Node entry code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-entry","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-entry","ariaLabel":"node entry permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumi node API (extends vscode)"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ExtensionContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" componentProxy"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" registerExtendModuleService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerExtendModuleService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Call the `updateTitle` method registered in the Leftview component"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" componentProxy"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Leftview"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello sumi Extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello sumi Extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this code, we call "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerExtendModuleService"}]},{"type":"text","value":" in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" function to register a method named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this way, the method of the Node entry can be called through the front end in the OpenSumi extension, and you can also encapsulate complex logic in the extension of the Node environment to avoid running too many tasks in the UI extension and causing the interface to freeze."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, we need to obtain the front-end methods bound through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendSet"}]},{"type":"text","value":" in the front-end components through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"componentProxy"}]},{"type":"text","value":" at the Node entry."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The final running effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01rQT5p11bgl4Y5Jiau_!!6000000003495-1-tps-960-518.gif","alt":"Preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-command-to-communication","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-command-to-communication","ariaLabel":"use command to communication permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Command to communication"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to the above methods, you can also use the more familiar "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"command"}]},{"type":"text","value":" mechanism to achieve front-end and back-end communication. Command is a very important and common mechanism in OpenSumi and VS Code. Use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" two methods To register and execute commands, OpenSumi also provides the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" method in the front-end API (in order to reduce the complexity, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"text","value":" method is not provided for now). In this way, you can call the commands registered in the Node entry through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" on the front end."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"regiterCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'getProjectType'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// front-end environment"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyProjectView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handleGetProjectType "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'getProjectType'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"then"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Button onClick"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handleGetProjectType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"Get Project Type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"communication-between-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#communication-between-extensions","ariaLabel":"communication between extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Communication between extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the VS Code extension, the API can be exposed externally by returning a set of objects through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" function. For other extensions, the extension instance can be obtained through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.extensions.getExtension"}]},{"type":"text","value":", and these APIs can be called."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, extension A exposes "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"text","value":" interface in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" function"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// return sayHello"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In extension B it can be used like this:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" exta "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'{ID of extension A}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// such as `opensumi.a`"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"exports"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// call sayHello"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the Node entry of the OpenSumi extension, this method can also be used to call each other, and the attribute for accessing the Node entry of the OpenSumi extension is named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"exetndsExports"}]},{"type":"text","value":", which is different from VS Code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similarly, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" method in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/node/index.ts"}]},{"type":"text","value":" returns the object:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// return sayHello"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In another extension it can be used like this:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" exta "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'{ID of extension A}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// such as `opensumi.a`"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extendExports"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// call sayHello"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode"},"parent":{"relativePath":"extension/develop/connection-mode.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/connection-mode","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi extension supports extensions in both Browser and Node environments. Generally, we recommend that you only register views at the Browser entry and write extension business logic in the Node entry."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"front-end-and-back-end-communication","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#front-end-and-back-end-communication","ariaLabel":"front end and back end communication permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Front-end and Back-end communication"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01jgVXs41u6YSrFgIZY_!!6000000005988-2-tps-362-120.png","alt":"Click"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Considering the above scenario, I want to pop up an error message when the button is clicked. This requires declaring a button in the left area of the extension at the Browser entry and implementing the logic to pop up the error message in the Node entry of the extension."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-entry","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-entry","ariaLabel":"browser entry permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Implement the component in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/browser/Leftview.tsx"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/browser/Leftview.tsx"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Button "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@ali/ide-components'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" Leftview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IComponentProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"INodeService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  sumiExtendService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" defaultTitle "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Click'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"title"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTitle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"defaultTitle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidUpdateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"val"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"defaultTitle "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"' '"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" val"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        updateTitle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" onDidUpdateTitle\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumiExtendService.node is an API Proxy"}]},{"type":"text","value":"\n    sumiExtendService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"node"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Button"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"size"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"small"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handleClick"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"Title"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Export components under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/browser/index.ts"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Leftview "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./toolbar-button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Leftview "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Declare where and how components are rendered in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// package.json"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"browserMain\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./out/browser/index.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"nodeMain\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./out/node/index.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"viewsProxies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Leftview\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"browserViews\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"left\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"add\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"view\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Leftview\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"extension\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this code, we declare a view whose rendering position is the position of the left sidebar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the component, we bind an event handler to the button, and call the method from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"props.sumiExtendService.node"}]},{"type":"text","value":" when clicked (please note that this is a proxy of the extension Node entry API, this code will not be directly in the running in a Node environment)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, we also bind an "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"text","value":" method in the Browser entry, which can also be called in the subsequent Node entry code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-entry","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-entry","ariaLabel":"node entry permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumi node API (extends vscode)"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ExtensionContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" componentProxy"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" registerExtendModuleService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerExtendModuleService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Call the `updateTitle` method registered in the Leftview component"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" componentProxy"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Leftview"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello sumi Extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello sumi Extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this code, we call "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerExtendModuleService"}]},{"type":"text","value":" in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" function to register a method named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In this way, the method of the Node entry can be called through the front end in the OpenSumi extension, and you can also encapsulate complex logic in the extension of the Node environment to avoid running too many tasks in the UI extension and causing the interface to freeze."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, we need to obtain the front-end methods bound through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendSet"}]},{"type":"text","value":" in the front-end components through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"componentProxy"}]},{"type":"text","value":" at the Node entry."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The final running effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01rQT5p11bgl4Y5Jiau_!!6000000003495-1-tps-960-518.gif","alt":"Preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-command-to-communication","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-command-to-communication","ariaLabel":"use command to communication permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Command to communication"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to the above methods, you can also use the more familiar "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"command"}]},{"type":"text","value":" mechanism to achieve front-end and back-end communication. Command is a very important and common mechanism in OpenSumi and VS Code. Use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" two methods To register and execute commands, OpenSumi also provides the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" method in the front-end API (in order to reduce the complexity, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"text","value":" method is not provided for now). In this way, you can call the commands registered in the Node entry through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" on the front end."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"regiterCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'getProjectType'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// front-end environment"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyProjectView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handleGetProjectType "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'getProjectType'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"then"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Button onClick"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handleGetProjectType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"Get Project Type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"communication-between-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#communication-between-extensions","ariaLabel":"communication between extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Communication between extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the VS Code extension, the API can be exposed externally by returning a set of objects through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" function. For other extensions, the extension instance can be obtained through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.extensions.getExtension"}]},{"type":"text","value":", and these APIs can be called."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, extension A exposes "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"text","value":" interface in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" function"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// return sayHello"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In extension B it can be used like this:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" exta "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'{ID of extension A}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// such as `opensumi.a`"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"exports"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// call sayHello"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the Node entry of the OpenSumi extension, this method can also be used to call each other, and the attribute for accessing the Node entry of the OpenSumi extension is named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"exetndsExports"}]},{"type":"text","value":", which is different from VS Code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similarly, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" method in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/node/index.ts"}]},{"type":"text","value":" returns the object:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// return sayHello"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In another extension it can be used like this:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" exta "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'{ID of extension A}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// such as `opensumi.a`"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extendExports"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// call sayHello"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode"},"parent":{"relativePath":"extension/develop/connection-mode.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/develop/view-isolate/page-data.json b/page-data/en/docs/extension/develop/view-isolate/page-data.json
        index 2af948b8..354df8fa 100644
        --- a/page-data/en/docs/extension/develop/view-isolate/page-data.json
        +++ b/page-data/en/docs/extension/develop/view-isolate/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/view-isolate","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h4","properties":{"id":"style-failure-issues","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#style-failure-issues","ariaLabel":"style failure issues permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Style Failure Issues"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Some common component libraries like "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd"}]},{"type":"text","value":" use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createPortal"}]},{"type":"text","value":" method to insert a root node at the top of the component tree for components like "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Overlay"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Popover"}]},{"type":"text","value":", etc."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When these components are used in the views registered by the plugin, due to the nature of portals, they are inserted outside of the plugin view slot (i.e., the plugin's "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":"). Additionally, because of the isolation of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":", any custom styles for these components in the plugin will not take effect because the plugin's head styles are only inserted into the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":" in which it resides."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For components like Dialog and Overlay in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@ali/ide-components"}]},{"type":"text","value":", when imported into the plugin using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import * as kaitian from 'kaitian-browser"}]},{"type":"text","value":", a new "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":" is created for the Portal component by default, and the styles are injected separately into the context of the Portal."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01YrLPCf24SDLpkmCO6_!!6000000007389-2-tps-1342-332.png","alt":"ide-components"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd"}]},{"type":"text","value":", these components usually provide a getContainer prop to specify the root node they are mounted on. You can set the container to the root element of the component registered by the plugin, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"jsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// antd Modal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Modal "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/modal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\t"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Modal"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// antd Popover"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Popover "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/popover'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\t"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Popover"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getPopupDomNode"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The component will rendering as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01l27JZS1MAxKoIAv63_!!6000000001395-2-tps-1300-914.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"event-issue","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#event-issue","ariaLabel":"event issue permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Event Issue"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Since React's synthetic events are based on event delegation and rely on the root node of the DOM tree, in some components (such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd/popover"}]},{"type":"text","value":"), it may be impossible to capture events bubbled up from their child components (the exact reason is still under investigation). This can cause event handlers for child components of these components to fail. It is recommended to use "},{"type":"element","tagName":"a","properties":{"href":"https://npm.alibaba-inc.com/package/react-shadow-dom-retarget-events","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"react-shadow-dom-retarget-events"}]},{"type":"text","value":" to manually specify the root node delegated for events to the above-mentioned container component, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"jsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Popover "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/popover'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" retargetEvents "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react-shadow-dom-retarget-events'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\t"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Popover"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getPopupDomNode"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"retargetEvents"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\t\t"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations"},"parent":{"relativePath":"extension/develop/view-isolate.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/develop/view-isolate","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h4","properties":{"id":"style-failure-issues","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#style-failure-issues","ariaLabel":"style failure issues permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Style Failure Issues"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Some common component libraries like "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd"}]},{"type":"text","value":" use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createPortal"}]},{"type":"text","value":" method to insert a root node at the top of the component tree for components like "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Overlay"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Popover"}]},{"type":"text","value":", etc."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When these components are used in the views registered by the plugin, due to the nature of portals, they are inserted outside of the plugin view slot (i.e., the plugin's "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":"). Additionally, because of the isolation of the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":", any custom styles for these components in the plugin will not take effect because the plugin's head styles are only inserted into the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":" in which it resides."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For components like Dialog and Overlay in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@ali/ide-components"}]},{"type":"text","value":", when imported into the plugin using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import * as kaitian from 'kaitian-browser"}]},{"type":"text","value":", a new "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":" is created for the Portal component by default, and the styles are injected separately into the context of the Portal."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01YrLPCf24SDLpkmCO6_!!6000000007389-2-tps-1342-332.png","alt":"ide-components"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd"}]},{"type":"text","value":", these components usually provide a getContainer prop to specify the root node they are mounted on. You can set the container to the root element of the component registered by the plugin, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"jsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// antd Modal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Modal "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/modal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\t"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Modal"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// antd Popover"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Popover "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/popover'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\t"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Popover"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getPopupDomNode"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The component will rendering as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01l27JZS1MAxKoIAv63_!!6000000001395-2-tps-1300-914.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"event-issue","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#event-issue","ariaLabel":"event issue permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Event Issue"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Since React's synthetic events are based on event delegation and rely on the root node of the DOM tree, in some components (such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd/popover"}]},{"type":"text","value":"), it may be impossible to capture events bubbled up from their child components (the exact reason is still under investigation). This can cause event handlers for child components of these components to fail. It is recommended to use "},{"type":"element","tagName":"a","properties":{"href":"https://npm.alibaba-inc.com/package/react-shadow-dom-retarget-events","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"react-shadow-dom-retarget-events"}]},{"type":"text","value":" to manually specify the root node delegated for events to the above-mentioned container component, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"jsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Popover "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/popover'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" retargetEvents "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react-shadow-dom-retarget-events'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\t"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Popover"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getPopupDomNode"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"retargetEvents"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\t\t"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations"},"parent":{"relativePath":"extension/develop/view-isolate.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/interface/custom-editor-component/page-data.json b/page-data/en/docs/extension/interface/custom-editor-component/page-data.json
        index 23e27adf..f1a7fb71 100644
        --- a/page-data/en/docs/extension/interface/custom-editor-component/page-data.json
        +++ b/page-data/en/docs/extension/interface/custom-editor-component/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/custom-editor-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi's Browser extension, it is supported to customize the components of the editor area by specifying "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scheme"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This function is similar to VS Code's Webview API, the difference is that we can use a React component to build it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"register","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register","ariaLabel":"register permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"register"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To register an editor component, you need to provide a custom "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scheme"}]},{"type":"text","value":". To open this component, you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.commands.executeCommand"}]},{"type":"text","value":" to execute "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.open"}]},{"type":"text","value":". Note that the execution here requires logic at the plug-in Node layer."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomEditor"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'custom editor'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  editor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'add'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// should be unique"}]},{"type":"text","value":"\n        panel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CustomEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        tabIconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'path/to/icon.svg'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component://?${args}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When calling "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.commands.executeCommand"}]},{"type":"text","value":" to execute the command to open the editor, parameters can be passed in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"queryString"}]},{"type":"text","value":" of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":", and these parameters will be passed in as props of the editor component on the Browser side."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"special-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#special-usage","ariaLabel":"special usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Special usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"get-the-detailed-information-and-status-control-of-the-opened-page","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#get-the-detailed-information-and-status-control-of-the-opened-page","ariaLabel":"get the detailed information and status control of the opened page permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Get the detailed information and status control of the opened page"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After registering the page, you can also open it through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.window.showTextDocument"}]},{"type":"text","value":" interface, which supports more parameter configurations, and you can get detailed editor information. For detailed documents, see [VSCode API - showTextDocument](https ://code.visualstudio.com/api/references/vscode-api), the basic usage is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" textEditor "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showTextDocument"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component://?${args}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      preview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"close-page","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#close-page","ariaLabel":"close page permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"close page"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Please do not use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".hide()"}]},{"type":"text","value":" method in the above "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"textEditor"}]},{"type":"text","value":" to close the page, this method is deprecated."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01Upwhhm1I5DvRuwckG_!!6000000000841-2-tps-920-303.png","alt":"hide"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The correct usage is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'workbench.action.closeActiveEditor'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This command is used to close the currently active editor page"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"front-end-and-back-end-communication","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#front-end-and-back-end-communication","ariaLabel":"front end and back end communication permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Front-end and back-end communication"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When using the editor component, you can also get "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendService"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendSet"}]},{"type":"text","value":" required for front-end and back-end communication from props, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" sumiExtendService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" resource "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can see "},{"type":"element","tagName":"a","properties":{"href":"../develop/connection-mode"},"children":[{"type":"text","value":"Communication Model"}]},{"type":"text","value":" for more detail."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component"},"parent":{"relativePath":"extension/interface/custom-editor-component.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/custom-editor-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi's Browser extension, it is supported to customize the components of the editor area by specifying "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scheme"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This function is similar to VS Code's Webview API, the difference is that we can use a React component to build it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"register","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register","ariaLabel":"register permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"register"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To register an editor component, you need to provide a custom "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scheme"}]},{"type":"text","value":". To open this component, you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.commands.executeCommand"}]},{"type":"text","value":" to execute "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.open"}]},{"type":"text","value":". Note that the execution here requires logic at the plug-in Node layer."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomEditor"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'custom editor'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  editor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'add'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// should be unique"}]},{"type":"text","value":"\n        panel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CustomEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        tabIconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'path/to/icon.svg'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component://?${args}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When calling "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.commands.executeCommand"}]},{"type":"text","value":" to execute the command to open the editor, parameters can be passed in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"queryString"}]},{"type":"text","value":" of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":", and these parameters will be passed in as props of the editor component on the Browser side."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"special-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#special-usage","ariaLabel":"special usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Special usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"get-the-detailed-information-and-status-control-of-the-opened-page","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#get-the-detailed-information-and-status-control-of-the-opened-page","ariaLabel":"get the detailed information and status control of the opened page permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Get the detailed information and status control of the opened page"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After registering the page, you can also open it through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.window.showTextDocument"}]},{"type":"text","value":" interface, which supports more parameter configurations, and you can get detailed editor information. For detailed documents, see [VSCode API - showTextDocument](https ://code.visualstudio.com/api/references/vscode-api), the basic usage is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" textEditor "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showTextDocument"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component://?${args}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      preview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"close-page","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#close-page","ariaLabel":"close page permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"close page"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Please do not use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".hide()"}]},{"type":"text","value":" method in the above "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"textEditor"}]},{"type":"text","value":" to close the page, this method is deprecated."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01Upwhhm1I5DvRuwckG_!!6000000000841-2-tps-920-303.png","alt":"hide"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The correct usage is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'workbench.action.closeActiveEditor'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This command is used to close the currently active editor page"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"front-end-and-back-end-communication","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#front-end-and-back-end-communication","ariaLabel":"front end and back end communication permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Front-end and back-end communication"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When using the editor component, you can also get "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendService"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendSet"}]},{"type":"text","value":" required for front-end and back-end communication from props, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" sumiExtendService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" resource "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can see "},{"type":"element","tagName":"a","properties":{"href":"../develop/connection-mode"},"children":[{"type":"text","value":"Communication Model"}]},{"type":"text","value":" for more detail."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component"},"parent":{"relativePath":"extension/interface/custom-editor-component.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/interface/i18n/page-data.json b/page-data/en/docs/extension/interface/i18n/page-data.json
        index bec34924..9149a5b5 100644
        --- a/page-data/en/docs/extension/interface/i18n/page-data.json
        +++ b/page-data/en/docs/extension/interface/i18n/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/i18n","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The complete extension includes "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code extension"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi extension"}]},{"type":"text","value":", and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" contribution points. For different environments and extension functions, the internationalization implementation is compatible with the VS Code extension and also has a certain degree of Scalability."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"vs-code","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#vs-code","ariaLabel":"vs code permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"VS Code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is compatible with some language pack extensions officially provided by VS Code (it is recommended to use OpenSumi versions above 2.23.6), such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chinese (Simplified) (Simplified Chinese) Language Pack for Visual Studio Code"}]},{"type":"text","value":"\n-..."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently only supports "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"zh-cn"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"en-us"}]},{"type":"text","value":" two language switching capabilities, if you have further needs, you can submit adaptation requirements at "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"issues"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The VS Code extension abandoned the original "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" scheme after version 1.74. It is recommended to use the new "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"l10n"}]},{"type":"text","value":" in the extension as an alternative. If you encounter text that cannot be normally internationalized, you can check the extension version and consider using An older extension version."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At present, OpenSumi does not support localization extensions implemented through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.l10n"}]},{"type":"text","value":". If you encounter related problems, you can leave a message at "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues/2341","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"#2341"}]},{"type":"text","value":" or + 1. We will further speed up the adaptation process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"declaration-in-packagejson","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#declaration-in-packagejson","ariaLabel":"declaration in packagejson permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Declaration in PackageJSON"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The extension "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" supports some purely static contribution points such as Menu and Command. The text in these contribution points can use the placeholder of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"%{section}%"}]},{"type":"text","value":" to declare the fields of the internationalized text, such as registration one command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"contributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"commands\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello OpenSumi\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-hello-command%\""}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Add a new file named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" in the extension as the default English language package"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-hello-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test i18n for command\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For Chinese, it needs to be written in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.zh-cn.json"}]},{"type":"text","value":", such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-hello-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test command internationalization\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similarly, any contribution point that can display copywriting in the IDE interface contributed by the extension can register the language pack in this way, for example, it can be used in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"configurations"}]},{"type":"text","value":" like this:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  ...\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"configuration\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-config-title%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"properties\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my-extension.enable-auto-bugfix-feature\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"boolean\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"description\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-config.config.enable-feature%\""}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  ...\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The extension contribution point will register a configuration item to the framework settings page, which is also declared in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.zh-cn.json"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-config-title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test Extension Configuration\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-config.config.enable-feature\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test enable feature\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01zoaGBP1Y5Fo8ILsu8_!!6000000003007-2-tps-1482-474.png","alt":"configurations"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"node-layer-uses","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-layer-uses","ariaLabel":"node layer uses permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node layer uses"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Refer to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples/tree/afa438d9303c283b29c35d7be1969b952fe06b21/i18n-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code i18n Sample"}]},{"type":"text","value":", you need to follow the structure of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/{language}"}]},{"type":"text","value":" in the internationalization language pack written in the extension. If your extension source code file "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/utils.ts"}]},{"type":"text","value":" needs internationalization support, you should write the language copy in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/out/utils.i18n.json"}]},{"type":"text","value":", and write OpenSumi extension Node code in the same way."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The above examples are applicable to pure VS Code extensions built with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gulpfile.js"}]},{"type":"text","value":", some new version extensions may not be applicable."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For extension projects initialized with OpenSumi CLI, the latest version of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode-nls"}]},{"type":"text","value":" needs to be installed in the extension before use. The sample code is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extension.ts or extend/node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" nls "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode-nls'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"bundle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  bundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"BundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"standalone\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"shoeInfomationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'i18n.key'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'defaulMessage'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// others"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" nls "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode-nls'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"loadMessageBundle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Different from the VS Code, the parameters of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.config"}]},{"type":"text","value":" have some differences in writing:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// when using gulp + tsc"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"file "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// when using OpenSumi CLI / webpack"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"bundle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  bundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"BundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"standalone\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Different parameters correspond to how the vscode-nls module will load the language pack file at runtime."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"If it is a pure VS Code extension, use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gulp + tsc"}]},{"type":"text","value":" to build the extension, then the language pack of the corresponding file will be loaded through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" directory structure at runtime, and only "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.metadata.json"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.metadata will be generated during construction .header.json"}]},{"type":"text","value":" is used to record the corresponding language file."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"If you use the OpenSumi extension Node side, or use the VS Code extension packaged by Webpack to compress the extension into a single file, the runtime will try to load the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.bundle.{language}.json"}]},{"type":"text","value":" file in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" directory."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, according to the VS Code extension example, if the language directory corresponding to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" contains "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" (such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/zh-cn/package.nls.json"}]},{"type":"text","value":"), when using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi compile/watch"}]},{"type":"text","value":" command It will also be extracted into the extension root directory and renamed to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.{language}.json"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Whether it is a VS Code extension or an OpenSumi extension, when running "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi compile"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi watch"}]},{"type":"text","value":", the corresponding language will be extracted to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"out/"}]},{"type":"text","value":" directory at the same time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"log"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-log"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-log"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"WEBPACK Hash:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1da8c87af3944336632a"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Version:"}]},{"type":"text","value":" webpack "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"4.44.1"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Time:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1197ms"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Built at:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","date","number"]},"children":[{"type":"text","value":"2020-08-10"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","time","number"]},"children":[{"type":"text","value":"20:52:32"}]},{"type":"text","value":"\n                   Asset       Size  Chunks             Chunk Names\n                "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"index.js"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"7.86"}]},{"type":"text","value":" KiB       "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  index\n     "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.jpn.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" Japanese language pack\n         "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"52"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" Default language pack\n   "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.zh-cn.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"37"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" Chinese language pack\n"},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.metadata.header.json"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"149"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" metadata\n       "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.metadata.json"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"118"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" metadata\nWEBPACK Compiled successfully in "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.2s"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"browser-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-usage","ariaLabel":"browser usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the Browse, text can also be declared in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":", but it needs to be imported from the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" module when using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localize"}]},{"type":"text","value":" method. The first parameter represents the copywriting id, which is declared in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package. The field name in nls.json"}]},{"type":"text","value":", the second parameter is the default value when the corresponding language pack copy cannot be found."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-extension-view-title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Test Title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The definition in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-view-title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test Title\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"reference-example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#reference-example","ariaLabel":"reference example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Reference example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/tree/main/i18n-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - i18n"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n"},"parent":{"relativePath":"extension/interface/i18n.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/i18n","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The complete extension includes "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code extension"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi extension"}]},{"type":"text","value":", and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" contribution points. For different environments and extension functions, the internationalization implementation is compatible with the VS Code extension and also has a certain degree of Scalability."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"vs-code","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#vs-code","ariaLabel":"vs code permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"VS Code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is compatible with some language pack extensions officially provided by VS Code (it is recommended to use OpenSumi versions above 2.23.6), such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chinese (Simplified) (Simplified Chinese) Language Pack for Visual Studio Code"}]},{"type":"text","value":"\n-..."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently only supports "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"zh-cn"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"en-us"}]},{"type":"text","value":" two language switching capabilities, if you have further needs, you can submit adaptation requirements at "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"issues"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The VS Code extension abandoned the original "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" scheme after version 1.74. It is recommended to use the new "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"l10n"}]},{"type":"text","value":" in the extension as an alternative. If you encounter text that cannot be normally internationalized, you can check the extension version and consider using An older extension version."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At present, OpenSumi does not support localization extensions implemented through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.l10n"}]},{"type":"text","value":". If you encounter related problems, you can leave a message at "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues/2341","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"#2341"}]},{"type":"text","value":" or + 1. We will further speed up the adaptation process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"declaration-in-packagejson","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#declaration-in-packagejson","ariaLabel":"declaration in packagejson permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Declaration in PackageJSON"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The extension "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" supports some purely static contribution points such as Menu and Command. The text in these contribution points can use the placeholder of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"%{section}%"}]},{"type":"text","value":" to declare the fields of the internationalized text, such as registration one command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"contributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"commands\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello OpenSumi\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-hello-command%\""}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Add a new file named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" in the extension as the default English language package"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-hello-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test i18n for command\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For Chinese, it needs to be written in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.zh-cn.json"}]},{"type":"text","value":", such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-hello-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test command internationalization\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similarly, any contribution point that can display copywriting in the IDE interface contributed by the extension can register the language pack in this way, for example, it can be used in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"configurations"}]},{"type":"text","value":" like this:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  ...\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"configuration\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-config-title%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"properties\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my-extension.enable-auto-bugfix-feature\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"boolean\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"description\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-config.config.enable-feature%\""}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  ...\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The extension contribution point will register a configuration item to the framework settings page, which is also declared in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.zh-cn.json"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-config-title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test Extension Configuration\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-config.config.enable-feature\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test enable feature\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01zoaGBP1Y5Fo8ILsu8_!!6000000003007-2-tps-1482-474.png","alt":"configurations"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"node-layer-uses","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-layer-uses","ariaLabel":"node layer uses permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node layer uses"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Refer to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples/tree/afa438d9303c283b29c35d7be1969b952fe06b21/i18n-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code i18n Sample"}]},{"type":"text","value":", you need to follow the structure of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/{language}"}]},{"type":"text","value":" in the internationalization language pack written in the extension. If your extension source code file "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/utils.ts"}]},{"type":"text","value":" needs internationalization support, you should write the language copy in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/out/utils.i18n.json"}]},{"type":"text","value":", and write OpenSumi extension Node code in the same way."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The above examples are applicable to pure VS Code extensions built with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gulpfile.js"}]},{"type":"text","value":", some new version extensions may not be applicable."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For extension projects initialized with OpenSumi CLI, the latest version of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode-nls"}]},{"type":"text","value":" needs to be installed in the extension before use. The sample code is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extension.ts or extend/node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" nls "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode-nls'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"bundle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  bundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"BundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"standalone\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"shoeInfomationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'i18n.key'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'defaulMessage'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// others"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" nls "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode-nls'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"loadMessageBundle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Different from the VS Code, the parameters of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.config"}]},{"type":"text","value":" have some differences in writing:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// when using gulp + tsc"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"file "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// when using OpenSumi CLI / webpack"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"bundle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  bundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"BundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"standalone\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Different parameters correspond to how the vscode-nls module will load the language pack file at runtime."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"If it is a pure VS Code extension, use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gulp + tsc"}]},{"type":"text","value":" to build the extension, then the language pack of the corresponding file will be loaded through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" directory structure at runtime, and only "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.metadata.json"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.metadata will be generated during construction .header.json"}]},{"type":"text","value":" is used to record the corresponding language file."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"If you use the OpenSumi extension Node side, or use the VS Code extension packaged by Webpack to compress the extension into a single file, the runtime will try to load the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.bundle.{language}.json"}]},{"type":"text","value":" file in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" directory."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, according to the VS Code extension example, if the language directory corresponding to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" contains "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" (such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/zh-cn/package.nls.json"}]},{"type":"text","value":"), when using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi compile/watch"}]},{"type":"text","value":" command It will also be extracted into the extension root directory and renamed to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.{language}.json"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Whether it is a VS Code extension or an OpenSumi extension, when running "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi compile"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi watch"}]},{"type":"text","value":", the corresponding language will be extracted to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"out/"}]},{"type":"text","value":" directory at the same time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"log"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-log"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-log"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"WEBPACK Hash:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1da8c87af3944336632a"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Version:"}]},{"type":"text","value":" webpack "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"4.44.1"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Time:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1197ms"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Built at:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","date","number"]},"children":[{"type":"text","value":"2020-08-10"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","time","number"]},"children":[{"type":"text","value":"20:52:32"}]},{"type":"text","value":"\n                   Asset       Size  Chunks             Chunk Names\n                "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"index.js"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"7.86"}]},{"type":"text","value":" KiB       "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  index\n     "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.jpn.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" Japanese language pack\n         "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"52"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" Default language pack\n   "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.zh-cn.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"37"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" Chinese language pack\n"},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.metadata.header.json"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"149"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" metadata\n       "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.metadata.json"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"118"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" metadata\nWEBPACK Compiled successfully in "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.2s"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"browser-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-usage","ariaLabel":"browser usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the Browse, text can also be declared in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":", but it needs to be imported from the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" module when using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localize"}]},{"type":"text","value":" method. The first parameter represents the copywriting id, which is declared in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package. The field name in nls.json"}]},{"type":"text","value":", the second parameter is the default value when the corresponding language pack copy cannot be found."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-extension-view-title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Test Title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The definition in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-view-title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test Title\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"reference-example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#reference-example","ariaLabel":"reference example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Reference example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/tree/main/i18n-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - i18n"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n"},"parent":{"relativePath":"extension/interface/i18n.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/interface/layout/page-data.json b/page-data/en/docs/extension/interface/layout/page-data.json
        index 38a103be..88554f15 100644
        --- a/page-data/en/docs/extension/interface/layout/page-data.json
        +++ b/page-data/en/docs/extension/interface/layout/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/layout","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi extension API contains a namespace called "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layout"}]},{"type":"text","value":". In addition to the intuitive "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleBottomPanel"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleLeftPanel"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleRightPanel"}]},{"type":"text","value":" and other methods, you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"text","value":" to pass in the ID of a specific Tabbar panel to obtain a handler object. Use For finer control Tabbar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This ID refers to the ID of the registered view on the UI side of the extension. Generally, we can simply find this information through the Dom structure, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01dMQBzL1I16MUIkxwe_!!6000000000832-2-tps-1566-772.png","alt":"Debug Console"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01ousv8M26hRlrYpMxj_!!6000000007693-2-tps-1510-1202.png","alt":"Explorer"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"instructions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#instructions","ariaLabel":"instructions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Instructions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tabbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"explorer"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"500"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the panel size"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//Expand the panel"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// collapse the panel"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setVisible"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// set to hidden state"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// event when the panel expands"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onInActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// event when the panel is closed"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the icon on the corresponding Tab"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the text on the corresponding Tab"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'12'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the Tab's badge"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For views registered by other extensions, you can get its instance through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getExtensionTabbarHandler"}]},{"type":"text","value":" method, and you need to pass in the ID of the corresponding extension when using it, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tabbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtensionTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'viewId'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'extensionId'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you have any questions, feel fress to ask on our Issues ~"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout"},"parent":{"relativePath":"extension/interface/layout.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/layout","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi extension API contains a namespace called "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layout"}]},{"type":"text","value":". In addition to the intuitive "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleBottomPanel"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleLeftPanel"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleRightPanel"}]},{"type":"text","value":" and other methods, you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"text","value":" to pass in the ID of a specific Tabbar panel to obtain a handler object. Use For finer control Tabbar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This ID refers to the ID of the registered view on the UI side of the extension. Generally, we can simply find this information through the Dom structure, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01dMQBzL1I16MUIkxwe_!!6000000000832-2-tps-1566-772.png","alt":"Debug Console"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01ousv8M26hRlrYpMxj_!!6000000007693-2-tps-1510-1202.png","alt":"Explorer"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"instructions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#instructions","ariaLabel":"instructions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Instructions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tabbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"explorer"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"500"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the panel size"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//Expand the panel"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// collapse the panel"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setVisible"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// set to hidden state"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// event when the panel expands"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onInActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// event when the panel is closed"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the icon on the corresponding Tab"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the text on the corresponding Tab"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'12'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the Tab's badge"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For views registered by other extensions, you can get its instance through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getExtensionTabbarHandler"}]},{"type":"text","value":" method, and you need to pass in the ID of the corresponding extension when using it, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tabbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtensionTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'viewId'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'extensionId'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you have any questions, feel fress to ask on our Issues ~"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout"},"parent":{"relativePath":"extension/interface/layout.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/interface/terminal/page-data.json b/page-data/en/docs/extension/interface/terminal/page-data.json
        index 843db43b..a5254073 100644
        --- a/page-data/en/docs/extension/interface/terminal/page-data.json
        +++ b/page-data/en/docs/extension/interface/terminal/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/terminal","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Terminal is an important part of IDE, which can help users quickly execute system commands and file operations, etc. The following introduces some common expansion scenarios in extensions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"custom-link-provider","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-link-provider","ariaLabel":"custom link provider permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom link provider"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\nvscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerTerminalLinkProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This method will be triggered when the mouse hovers"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"provideTerminalLinks"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" token"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// context.line is the string of the current line"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" startIndex "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"line "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"indexOf"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"startIndex "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// return an array, the content is all the identified links"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n         startIndex"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n         length"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":" length"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// You can return data in this object to access inside handleTerminalLink"}]},{"type":"text","value":"\n         data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Example data'"}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This method will be triggered when the link is clicked"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handleTerminalLink"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"link"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n     vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Link activated (data = "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"link"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Here you can open external links via vscode.open"}]},{"type":"text","value":"\n     vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01abcWWB23IJBV61QhN_!!6000000007232-1-tps-1200-692.gif","alt":"link"},"children":[]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal"},"parent":{"relativePath":"extension/interface/terminal.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/terminal","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Terminal is an important part of IDE, which can help users quickly execute system commands and file operations, etc. The following introduces some common expansion scenarios in extensions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"custom-link-provider","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-link-provider","ariaLabel":"custom link provider permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom link provider"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\nvscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerTerminalLinkProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This method will be triggered when the mouse hovers"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"provideTerminalLinks"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" token"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// context.line is the string of the current line"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" startIndex "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"line "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"indexOf"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"startIndex "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// return an array, the content is all the identified links"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n         startIndex"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n         length"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":" length"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// You can return data in this object to access inside handleTerminalLink"}]},{"type":"text","value":"\n         data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Example data'"}]},{"type":"text","value":"\n       "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// This method will be triggered when the link is clicked"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handleTerminalLink"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"link"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n     vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Link activated (data = "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"link"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Here you can open external links via vscode.open"}]},{"type":"text","value":"\n     vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The effect is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01abcWWB23IJBV61QhN_!!6000000007232-1-tps-1200-692.gif","alt":"link"},"children":[]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal"},"parent":{"relativePath":"extension/interface/terminal.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/interface/toolbar/page-data.json b/page-data/en/docs/extension/interface/toolbar/page-data.json
        index fd8eff59..0c95fbe6 100644
        --- a/page-data/en/docs/extension/interface/toolbar/page-data.json
        +++ b/page-data/en/docs/extension/interface/toolbar/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/toolbar","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Toolbar is located on the right side of the top menu bar of the IDE by default. According to the configuration of different integrators, it can also be displayed as a separate column, similar to the Alipay applet developer tools. As shown below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01vZ7d8C1cyS0IU2qtR_!!6000000003669-2-tps-1685-86.png","alt":"sample1"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qSsHwA21oFZktRttG_!!6000000007031-2-tps-1651-87.png","alt":"sample2"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01cNra151YvvM7eJw2A_!!6000000003122-2-tps-1529-46.png","alt":"sample3"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Include toolbar-related APIs in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.toolbar"}]},{"type":"text","value":" namespace, which can be combined with "},{"type":"element","tagName":"a","properties":{"href":"../contributes/toolbar"},"children":[{"type":"text","value":"Toolbar contribution point"}]},{"type":"text","value":" for finer-grained control over the toolbar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar contains three methods for obtaining or registering a Toolbar Action, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Register a Toolbar Action of select type\n * @param contribution IToolbarSelectContribution\n * Return a handle for operating and responding to the corresponding select control on the toolbar\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  contribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarSelectContribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarSelectActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Register a Toolbar action of button type\n * @param contribution IToolbarButtonContribution\n * Return a handle for operating and responding to the corresponding button control on the toolbar\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  contribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarButtonContribution\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarButtonActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Get a handle of Toolbar action, which is used to operate and respond to the button on the toolbar\n * @param id\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarButtonActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Get a handle of Toolbar action, which is used to operate and respond to the select on the toolbar\n * @param id\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarSelectActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"registertoolbaraction","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#registertoolbaraction","ariaLabel":"registertoolbaraction permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"registerToolbarAction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"text","value":" to dynamically register Toolbar elements. Unlike registration through Toolbar contribution points, the Toolbar Action of contribution points will be displayed regardless of whether the plug-in is activated, but through the API, it will only be registered and displayed on the toolbar after the plug-in is activated. ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The parameters are basically the same as the Toolbar contribution point, and the content declared by the contribution point can basically be called directly as a parameter."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Run'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/gua.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-start'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Use mask to render svg, the foreground color is --activityBar-inactiveForeground"}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Define several states of the button"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the title foreground color to red by default"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#FF004F'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// gray in clicked state"}]},{"type":"text","value":"\n    clicked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#CCC'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nsumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register a toolbar action of select type"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"title"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"What to give for Children's Day?\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"What to give for Children's Day?\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// bind do-select command"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select dropdown value list"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Five-year college entrance examination'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// default state"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      labelForegroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#FF004F'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    clicked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      labelForegroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#CCC'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"gettoolbaractionbuttonhandlegettoolbaractionselecthandle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#gettoolbaractionbuttonhandlegettoolbaractionselecthandle","ariaLabel":"gettoolbaractionbuttonhandlegettoolbaractionselecthandle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"getToolbarActionButtonHandle/getToolbarActionSelectHandle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For usage, refer to the case in the "},{"type":"element","tagName":"a","properties":{"href":"../contributes/toolbar"},"children":[{"type":"text","value":"Toolbar Contribution Point"}]},{"type":"text","value":" document."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example-repository","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-repository","ariaLabel":"example repository permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example repository"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/tree/main/toolbar-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - Toolbar"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar"},"parent":{"relativePath":"extension/interface/toolbar.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/toolbar","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Toolbar is located on the right side of the top menu bar of the IDE by default. According to the configuration of different integrators, it can also be displayed as a separate column, similar to the Alipay applet developer tools. As shown below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01vZ7d8C1cyS0IU2qtR_!!6000000003669-2-tps-1685-86.png","alt":"sample1"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qSsHwA21oFZktRttG_!!6000000007031-2-tps-1651-87.png","alt":"sample2"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01cNra151YvvM7eJw2A_!!6000000003122-2-tps-1529-46.png","alt":"sample3"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Include toolbar-related APIs in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.toolbar"}]},{"type":"text","value":" namespace, which can be combined with "},{"type":"element","tagName":"a","properties":{"href":"../contributes/toolbar"},"children":[{"type":"text","value":"Toolbar contribution point"}]},{"type":"text","value":" for finer-grained control over the toolbar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar contains three methods for obtaining or registering a Toolbar Action, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Register a Toolbar Action of select type\n * @param contribution IToolbarSelectContribution\n * Return a handle for operating and responding to the corresponding select control on the toolbar\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  contribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarSelectContribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarSelectActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Register a Toolbar action of button type\n * @param contribution IToolbarButtonContribution\n * Return a handle for operating and responding to the corresponding button control on the toolbar\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  contribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarButtonContribution\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarButtonActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Get a handle of Toolbar action, which is used to operate and respond to the button on the toolbar\n * @param id\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarButtonActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Get a handle of Toolbar action, which is used to operate and respond to the select on the toolbar\n * @param id\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarSelectActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"registertoolbaraction","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#registertoolbaraction","ariaLabel":"registertoolbaraction permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"registerToolbarAction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"text","value":" to dynamically register Toolbar elements. Unlike registration through Toolbar contribution points, the Toolbar Action of contribution points will be displayed regardless of whether the plug-in is activated, but through the API, it will only be registered and displayed on the toolbar after the plug-in is activated. ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The parameters are basically the same as the Toolbar contribution point, and the content declared by the contribution point can basically be called directly as a parameter."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Run'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/gua.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-start'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Use mask to render svg, the foreground color is --activityBar-inactiveForeground"}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Define several states of the button"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Set the title foreground color to red by default"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#FF004F'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// gray in clicked state"}]},{"type":"text","value":"\n    clicked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#CCC'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nsumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register a toolbar action of select type"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"title"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"What to give for Children's Day?\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"What to give for Children's Day?\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// bind do-select command"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select dropdown value list"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Five-year college entrance examination'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// default state"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      labelForegroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#FF004F'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    clicked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      labelForegroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#CCC'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"gettoolbaractionbuttonhandlegettoolbaractionselecthandle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#gettoolbaractionbuttonhandlegettoolbaractionselecthandle","ariaLabel":"gettoolbaractionbuttonhandlegettoolbaractionselecthandle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"getToolbarActionButtonHandle/getToolbarActionSelectHandle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For usage, refer to the case in the "},{"type":"element","tagName":"a","properties":{"href":"../contributes/toolbar"},"children":[{"type":"text","value":"Toolbar Contribution Point"}]},{"type":"text","value":" document."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example-repository","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-repository","ariaLabel":"example repository permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example repository"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/tree/main/toolbar-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - Toolbar"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar"},"parent":{"relativePath":"extension/interface/toolbar.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/interface/use-builtin-component/page-data.json b/page-data/en/docs/extension/interface/use-builtin-component/page-data.json
        index 99ccad5e..09743a1d 100644
        --- a/page-data/en/docs/extension/interface/use-builtin-component/page-data.json
        +++ b/page-data/en/docs/extension/interface/use-builtin-component/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/use-builtin-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"built-in-components","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#built-in-components","ariaLabel":"built in components permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Built-in components"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi's Browser extension, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" has exported all the components in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@ali/ide-components"}]},{"type":"text","value":", so when we need to use components, we can directly reference them through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":", the example is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Button"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Input "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Sample"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"React"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Component "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"render"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"This "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"is"}]},{"type":"text","value":" a button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Input "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"third-party-components","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#third-party-components","ariaLabel":"third party components permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Third-party components"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Most of the components exported in OpenSumi's "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" are commonly used components in OpenSumi, and you may need to use more components, such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd"}]},{"type":"text","value":" and other component libraries. It should be noted that if your extension operating environment has Enable the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDom"}]},{"type":"text","value":" mode (to avoid style pollution, it is currently enabled by default), please note that when using global notification components such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"notification/dialog"}]},{"type":"text","value":", you need to pay attention to the fact that css may be isolated and cause the style to fail, please select "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" Export the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"messsage/dialog"}]},{"type":"text","value":" component to meet the development needs, or mount the component under the current component, see: "},{"type":"element","tagName":"a","properties":{"href":"../opensumi-api/view-isolate"},"children":[{"type":"text","value":"view isolation considerations"}]},{"type":"text","value":" for details."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We also provide a theme package "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" for AntD 4 version, you can use it as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/antd-theme/lib/index.css'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ConfigProvider prefixCls"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi_antd\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"App "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"ConfigProvider"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To develop similar theme files, please refer to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme#developement","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" repository."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components"},"parent":{"relativePath":"extension/interface/use-builtin-component.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/use-builtin-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"built-in-components","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#built-in-components","ariaLabel":"built in components permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Built-in components"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi's Browser extension, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" has exported all the components in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@ali/ide-components"}]},{"type":"text","value":", so when we need to use components, we can directly reference them through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":", the example is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Button"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Input "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Sample"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"React"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Component "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"render"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"This "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"is"}]},{"type":"text","value":" a button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Input "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"third-party-components","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#third-party-components","ariaLabel":"third party components permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Third-party components"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Most of the components exported in OpenSumi's "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" are commonly used components in OpenSumi, and you may need to use more components, such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd"}]},{"type":"text","value":" and other component libraries. It should be noted that if your extension operating environment has Enable the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDom"}]},{"type":"text","value":" mode (to avoid style pollution, it is currently enabled by default), please note that when using global notification components such as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"notification/dialog"}]},{"type":"text","value":", you need to pay attention to the fact that css may be isolated and cause the style to fail, please select "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" Export the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"messsage/dialog"}]},{"type":"text","value":" component to meet the development needs, or mount the component under the current component, see: "},{"type":"element","tagName":"a","properties":{"href":"../opensumi-api/view-isolate"},"children":[{"type":"text","value":"view isolation considerations"}]},{"type":"text","value":" for details."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We also provide a theme package "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" for AntD 4 version, you can use it as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/antd-theme/lib/index.css'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ConfigProvider prefixCls"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi_antd\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"App "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"ConfigProvider"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To develop similar theme files, please refer to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme#developement","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" repository."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components"},"parent":{"relativePath":"extension/interface/use-builtin-component.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/interface/use-event/page-data.json b/page-data/en/docs/extension/interface/use-event/page-data.json
        index 8cbb8a99..3ece23e2 100644
        --- a/page-data/en/docs/extension/interface/use-event/page-data.json
        +++ b/page-data/en/docs/extension/interface/use-event/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/use-event","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi, you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Event"}]},{"type":"text","value":" mechanism to achieve cross-plugin communication, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// emit event in plugin A"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"fire"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'event-from-extension-a'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'a'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Receive events in plugin B"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"subscribe"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'event-from-extension-a'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// a"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similarly, you can also use Command to implement similar logic, refer to: "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/vscode-api#commands","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code API#commands"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event"},"parent":{"relativePath":"extension/interface/use-event.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/interface/use-event","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi, you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Event"}]},{"type":"text","value":" mechanism to achieve cross-plugin communication, such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// emit event in plugin A"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"fire"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'event-from-extension-a'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'a'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Receive events in plugin B"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"subscribe"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'event-from-extension-a'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// a"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Similarly, you can also use Command to implement similar logic, refer to: "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/vscode-api#commands","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code API#commands"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event"},"parent":{"relativePath":"extension/interface/use-event.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/overview/page-data.json b/page-data/en/docs/extension/overview/page-data.json
        index 6d71d2c1..801ad459 100644
        --- a/page-data/en/docs/extension/overview/page-data.json
        +++ b/page-data/en/docs/extension/overview/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides a powerful extension ecosystem that is compatible with the VS Code extension API while also having its own OpenSumi API for further expanding the IDE interface and abilities."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The structure diagram of the extension capabilities is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01xpzgfe24PvNA26s4q_!!6000000007384-2-tps-1371-940.png","alt":"Extension Features"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"developing-vs-code-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#developing-vs-code-extensions","ariaLabel":"developing vs code extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Developing VS Code Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In extension development, you can follow the development model of VS Code, complete your extension development in VS Code, and then import the implemented extension products into IDE based on OpenSumi for use."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more details, refer to the "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":" of the VS Code extension document."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here are some commonly used examples and documents:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/eclipse-theia/vscode-builtin-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"eclipse-theia/vscode-builtin-extensions"}]},{"type":"text","value":" —— 基于 VS Code 版本打包其内置插件的工程项目"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"microsoft/vscode-extension-samples"}]},{"type":"text","value":" —— VS Code 官方的插件 API 示例仓库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":" —— VS Code 插件开发向导文档"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/get-started/your-first-extension","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Your First Extension"}]},{"type":"text","value":" —— 快速开始插件开发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]},{"type":"text","value":" —— 在 OpenSumi 中也支持了这类插件,在纯前端环境有着十分重要的作用"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"developing-opensumi-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#developing-opensumi-extensions","ariaLabel":"developing opensumi extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Developing OpenSumi Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There is a part of OpenSumi that can only run in IDEs built on OpenSumi and provides capabilities including but not limited to:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Extending and customizing views through React technology stack"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar customization"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron Webview management"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Layout capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Full view custom rendering"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The directory structure of a complete OpenSumi extension is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── .gitignore       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# git ignore directory"}]},{"type":"text","value":"\n├── README.md        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension description"}]},{"type":"text","value":"\n├── src\n ├── extend\n ├── browser         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension Browser entry, providing UI customization capability"}]},{"type":"text","value":"\n ├── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension Node entry, providing local environment operation capability"}]},{"type":"text","value":"\n ├── worker          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension Worker entry, providing WebWorker environment operation capability"}]},{"type":"text","value":"\n│ └── extension.ts   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension source code (VS Code extension entry)"}]},{"type":"text","value":"\n├── package.json     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Extension manifest"}]},{"type":"text","value":"\n├── tsconfig.json"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"directory-explanation","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#directory-explanation","ariaLabel":"directory explanation permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Directory Explanation"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/extensions.ts"}]},{"type":"text","value":" file is the entry point for the VS Code extension. Refer to the Extension Guides for VS Code extension development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/extend"}]},{"type":"text","value":" directory contains OpenSumi's own extension system, including Browser/Node/Worker entry points."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"entry-point-explanation","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#entry-point-explanation","ariaLabel":"entry point explanation permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Entry Point Explanation"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code extensions will behave consistently with a specific version of VS Code when running in OpenSumi, for example, the current "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"2.23.0"}]},{"type":"text","value":" version is compatible with the VS Code extension API version "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"1.68.0"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Browser supports UI customization through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"React"}]},{"type":"text","value":" components in exposed slots. If your extension needs to register UI components in the interface, you can write them in the Browser."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Node supports pure Node environment operations. The Node extension has the same API as the VS Code extension and can also call OpenSumi's own extension API. If your extension needs to call native Node.js APIs or run some local tasks, you can write them in the Node."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker has the ability to run in a WebWorker environment. If your extension contains tasks with large amounts of calculations that do not require local capabilities, you can write them in the Worker."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Whether it's a VS Code extension or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser/Node/Worker"}]},{"type":"text","value":", all three are optional. In other words, if you only need native VS Code extension capabilities, you can ignore the extend directory. Similarly, if you only need the capabilities of one of OpenSumi's extensions, you can ignore the other and only need to modify a small amount of configuration."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"getting-started","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#getting-started","ariaLabel":"getting started permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Getting Started"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Refer to the "},{"type":"element","tagName":"a","properties":{"href":"(./quick-start)"},"children":[{"type":"text","value":"Quick Start"}]},{"type":"text","value":" document to quickly set up a extension development environment using OpenSumi CLI locally."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-examples","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-examples","ariaLabel":"extension examples permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Examples"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code Extension Samples"}]},{"type":"text","value":" mentioned above, OpenSumi also has its "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Samples"}]},{"type":"text","value":", which includes some common extension sample code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"i18n Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Gulp compile Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Gulp"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Custom webpack compile Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Configuration Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Upload OSS Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Plain Webview Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Git Operation Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Command Sample?"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-marketplace","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-marketplace","ariaLabel":"extension marketplace permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Marketplace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently, OpenSumi supports two types of plugin marketplaces as shown below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01Kq3jZf25zTjbBJWzR_!!6000000007597-2-tps-1906-732.png","alt":"Extension Marketplace"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://marketplace.opentrs.cn/square","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenTRS"}]},{"type":"text","value":" —— A public extension marketplace service provided by Ant Group."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://open-vsx.org/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenVSX"}]},{"type":"text","value":" —— A public extension marketplace service provided by the Eclipse Foundation (with open source code)."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can freely switch between sources according to your usage scenario, see the documentation for "},{"type":"element","tagName":"a","properties":{"href":"../integrate/universal-integrate-case/custom-marketplace-entrypoint"},"children":[{"type":"text","value":"Custom Extension Marketplace"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension"},"parent":{"relativePath":"extension/overview.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides a powerful extension ecosystem that is compatible with the VS Code extension API while also having its own OpenSumi API for further expanding the IDE interface and abilities."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The structure diagram of the extension capabilities is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01xpzgfe24PvNA26s4q_!!6000000007384-2-tps-1371-940.png","alt":"Extension Features"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"developing-vs-code-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#developing-vs-code-extensions","ariaLabel":"developing vs code extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Developing VS Code Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In extension development, you can follow the development model of VS Code, complete your extension development in VS Code, and then import the implemented extension products into IDE based on OpenSumi for use."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more details, refer to the "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":" of the VS Code extension document."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here are some commonly used examples and documents:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/eclipse-theia/vscode-builtin-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"eclipse-theia/vscode-builtin-extensions"}]},{"type":"text","value":" —— 基于 VS Code 版本打包其内置插件的工程项目"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"microsoft/vscode-extension-samples"}]},{"type":"text","value":" —— VS Code 官方的插件 API 示例仓库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":" —— VS Code 插件开发向导文档"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/get-started/your-first-extension","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Your First Extension"}]},{"type":"text","value":" —— 快速开始插件开发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]},{"type":"text","value":" —— 在 OpenSumi 中也支持了这类插件,在纯前端环境有着十分重要的作用"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"developing-opensumi-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#developing-opensumi-extensions","ariaLabel":"developing opensumi extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Developing OpenSumi Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There is a part of OpenSumi that can only run in IDEs built on OpenSumi and provides capabilities including but not limited to:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Extending and customizing views through React technology stack"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar customization"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron Webview management"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Layout capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Full view custom rendering"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The directory structure of a complete OpenSumi extension is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── .gitignore       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# git ignore directory"}]},{"type":"text","value":"\n├── README.md        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension description"}]},{"type":"text","value":"\n├── src\n ├── extend\n ├── browser         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension Browser entry, providing UI customization capability"}]},{"type":"text","value":"\n ├── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension Node entry, providing local environment operation capability"}]},{"type":"text","value":"\n ├── worker          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension Worker entry, providing WebWorker environment operation capability"}]},{"type":"text","value":"\n│ └── extension.ts   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# extension source code (VS Code extension entry)"}]},{"type":"text","value":"\n├── package.json     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Extension manifest"}]},{"type":"text","value":"\n├── tsconfig.json"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"directory-explanation","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#directory-explanation","ariaLabel":"directory explanation permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Directory Explanation"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/extensions.ts"}]},{"type":"text","value":" file is the entry point for the VS Code extension. Refer to the Extension Guides for VS Code extension development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/extend"}]},{"type":"text","value":" directory contains OpenSumi's own extension system, including Browser/Node/Worker entry points."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"entry-point-explanation","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#entry-point-explanation","ariaLabel":"entry point explanation permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Entry Point Explanation"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code extensions will behave consistently with a specific version of VS Code when running in OpenSumi, for example, the current "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"2.23.0"}]},{"type":"text","value":" version is compatible with the VS Code extension API version "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"1.68.0"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Browser supports UI customization through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"React"}]},{"type":"text","value":" components in exposed slots. If your extension needs to register UI components in the interface, you can write them in the Browser."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Node supports pure Node environment operations. The Node extension has the same API as the VS Code extension and can also call OpenSumi's own extension API. If your extension needs to call native Node.js APIs or run some local tasks, you can write them in the Node."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker has the ability to run in a WebWorker environment. If your extension contains tasks with large amounts of calculations that do not require local capabilities, you can write them in the Worker."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Whether it's a VS Code extension or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser/Node/Worker"}]},{"type":"text","value":", all three are optional. In other words, if you only need native VS Code extension capabilities, you can ignore the extend directory. Similarly, if you only need the capabilities of one of OpenSumi's extensions, you can ignore the other and only need to modify a small amount of configuration."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"getting-started","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#getting-started","ariaLabel":"getting started permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Getting Started"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Refer to the "},{"type":"element","tagName":"a","properties":{"href":"(./quick-start)"},"children":[{"type":"text","value":"Quick Start"}]},{"type":"text","value":" document to quickly set up a extension development environment using OpenSumi CLI locally."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-examples","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-examples","ariaLabel":"extension examples permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Examples"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code Extension Samples"}]},{"type":"text","value":" mentioned above, OpenSumi also has its "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Samples"}]},{"type":"text","value":", which includes some common extension sample code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"i18n Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Gulp compile Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Gulp"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Custom webpack compile Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Configuration Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Upload OSS Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Plain Webview Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Git Operation Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Command Sample?"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-marketplace","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-marketplace","ariaLabel":"extension marketplace permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Marketplace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently, OpenSumi supports two types of plugin marketplaces as shown below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01Kq3jZf25zTjbBJWzR_!!6000000007597-2-tps-1906-732.png","alt":"Extension Marketplace"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://marketplace.opentrs.cn/square","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenTRS"}]},{"type":"text","value":" —— A public extension marketplace service provided by Ant Group."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://open-vsx.org/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenVSX"}]},{"type":"text","value":" —— A public extension marketplace service provided by the Eclipse Foundation (with open source code)."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can freely switch between sources according to your usage scenario, see the documentation for "},{"type":"element","tagName":"a","properties":{"href":"../integrate/universal-integrate-case/custom-marketplace-entrypoint"},"children":[{"type":"text","value":"Custom Extension Marketplace"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension"},"parent":{"relativePath":"extension/overview.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/quick-start/page-data.json b/page-data/en/docs/extension/quick-start/page-data.json
        index e33fc6f8..a087ac5c 100644
        --- a/page-data/en/docs/extension/quick-start/page-data.json
        +++ b/page-data/en/docs/extension/quick-start/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/quick-start","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi allows integration in two ways: Web and Electron. The extension system and its capabilities have a consistent performance on both platforms."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When developing a extension, you can quickly start the extension development environment locally using "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/cli","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":". Install it by running:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":" @opensumi/cli "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-g"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"initialize-the-extension-template","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#initialize-the-extension-template","ariaLabel":"initialize the extension template permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Initialize the extension template"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi init"}]},{"type":"text","value":" and enter the extension "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"name"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"publisher"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"displayName"}]},{"type":"text","value":", and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"description"}]},{"type":"text","value":" as prompted."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01A9Ic8J1nGRi2E8aOr_!!6000000005062-2-tps-838-438.png","alt":"sumi-init"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"running-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#running-extension","ariaLabel":"running extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Running extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Install the dependencies using:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extensions initialized based on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" include basic running and building scripts in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":". It is recommended to run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm run watch"}]},{"type":"text","value":" in the background during the development stage to compile the extension code in real time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm run dev"}]},{"type":"text","value":" in the extension directory to start a web version of OpenSumi IDE and load the current extension into it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"compile\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi compile\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"watch\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi watch\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dev\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi dev -e=$(pwd)\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Or run the development command of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" directly in the extension directory, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi dev"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Monitor and compile code automatically"}]},{"type":"text","value":"\n$ sumi dev   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Start the OpenSumi Web version development environment"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01M4UZxy1q1jpwR9PtM_!!6000000005436-2-tps-986-334.png","alt":"sumi-dev"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open "},{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1:50999","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1:50999"}]},{"type":"text","value":" in the browser to open a web version of OpenSumi IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"command-usage-engine-version-control","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#command-usage-engine-version-control","ariaLabel":"command usage engine version control permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Command usage### Engine Version Control"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi, there are many release versions. Before developing a extension, you need to make sure that the extension API you are using is supported by the corresponding "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" version. You can check the current version information through the following command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"ls"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01egTvGF1nQWQB3JQtO_!!6000000005084-2-tps-532-196.png","alt":"sumi-engine-ls"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can see all "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" version information by the following command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine ls-remote"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When switching versions, you only need to switch with the following command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine use "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"version"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When encountering abnormal performance of extension functions, updating "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" to the latest version for testing is a more effective means of verification."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"set-compilation-success-callback","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#set-compilation-success-callback","ariaLabel":"set compilation success callback permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Set compilation success callback"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When running the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi watch"}]},{"type":"text","value":" command, OpenSumi CLI supports executing a callback after each successful compilation, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--onSuccess"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'echo hello world'"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"specify-the-working-directory","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#specify-the-working-directory","ariaLabel":"specify the working directory permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"specify the working directory"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Support specifying working directory when running "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi dev"}]},{"type":"text","value":" command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-w"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/vscode"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This will start OpenSumi IDE with the path passed in as the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"text","value":" parameter and the current directory as the extension, as shown in the image below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN010Yu9Be1jgm0jSYwUt_!!6000000004578-2-tps-1200-802.png","alt":"set-workspace"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"specify-the-base-plugin","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#specify-the-base-plugin","ariaLabel":"specify the base plugin permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Specify the base plugin"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi CLI does not have any built-in plug-ins. When your plug-ins rely on some capabilities of other plug-ins, you can soft-link or directly copy these plug-ins to the plug-in directory of OpenSumi CLI. The default plug-in directory is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi-dev in the user's Home directory /extensions"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"specify-ide-server-port","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#specify-ide-server-port","ariaLabel":"specify ide server port permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Specify IDE Server port"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi CLI supports specifying the listening port of IDE Server via "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"-p"}]},{"type":"text","value":", the default is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"50999"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-p"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8989"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# ..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"debug","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#debug","ariaLabel":"debug permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"debug"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Run in the extension directory"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Start OpenSumi IDE debug mode"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# or specify the extension directory"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext1,/path/to/ext2"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"use-vs-code--opensumi-ide-for-breakpoint-debugging","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-vs-code--opensumi-ide-for-breakpoint-debugging","ariaLabel":"use vs code  opensumi ide for breakpoint debugging permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use VS Code / OpenSumi IDE for breakpoint debugging"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Extension Host Process is a Node.js process, and the extension code can be debugged by configuring "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"launch.json"}]},{"type":"text","value":" in VS Code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// A launch configuration that compiles the extension and then opens it inside a new window"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Use IntelliSense to learn about possible attributes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Hover to view descriptions of existing attributes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"version\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"0.2.0\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"configurations\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"node\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"request\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"attach\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"                           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Attach mode"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"name\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Attach to Extension Host\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"port\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9889"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"                                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extension process port, not modifiable"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"skipFiles\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/**\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sourceMaps\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"                            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Turn on SourceMap for easy source mapping"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"outFiles\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"${workspaceFolder}/out/*/.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Specify the extension code output directory"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Select Attach to Extension Host in the VS Code debug panel to use VS Code for breakpoint debugging"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN0118sSJb1KYCCXcZrIS_!!6000000001175-2-tps-1200-683.png","alt":"debug"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The principle of debugging on the local client developed based on OpenSumi is also the same, just place the configuration file under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi/launch.json"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"If you need to perform breakpoint debugging in typescript source code, you need to enable Sourcemap when compiling"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"specify-the-operating-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#specify-the-operating-environment","ariaLabel":"specify the operating environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Specify the operating environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently, the desktop (Electron) version of the IDE based on the OpenSumi framework is supported as the extension runtime environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"run in terminal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext1,/path/to/ext2 "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/IDE"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"--execute"}]},{"type":"text","value":" parameter indicates the path of the desktop IDE executable file, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"#Windows"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/C:"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"Program Files"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"OpenSumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"OpenSumi.exe "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# MacOS"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/Applications/OpenSumi.app/Contents/MacOS/OpenSumi "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When using the desktop version of the IDE, since the desktop version of the IDE may include pre-processes such as creating and selecting projects, it is not possible to specify "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"text","value":" through parameters."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"package-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#package-extension","ariaLabel":"package extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Package Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi package"}]},{"type":"text","value":" command to package your extension."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN012hnLYD1p6wiwKXrHk_!!6000000005312-2-tps-886-618.png","alt":"sumi-package"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi package"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Please make sure that the extension "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" contains a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scripts"}]},{"type":"text","value":" script named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"prepublish"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"prepublishOnly\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/* your compile script */\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This will first run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm list"}]},{"type":"text","value":" to analyze dependencies. If you need to package the node_modules of the extension project, it is recommended to use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm install --production"}]},{"type":"text","value":" to install dependencies, which will only install the modules necessary for runtime."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"exclude-directories","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#exclude-directories","ariaLabel":"exclude directories permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Exclude directories"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When running the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi package"}]},{"type":"text","value":" command, it supports specifying excluded files or directories. Create a new file named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".vscodeignore"}]},{"type":"text","value":" under the extension project. The format is similar to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".gitignore"}]},{"type":"text","value":". It supports glob pattern matching directories and will be excluded when packaging. these files:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"#.vscodeignore"}]},{"type":"text","value":"\nnode_modules/\nsrc/\nyarn-error.log\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"#..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Or pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"--ignoreFile"}]},{"type":"text","value":" parameter to specify ignore file"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi package "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--ignoreFile"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/.ignore"}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start"},"parent":{"relativePath":"extension/quick-start.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/quick-start","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi allows integration in two ways: Web and Electron. The extension system and its capabilities have a consistent performance on both platforms."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When developing a extension, you can quickly start the extension development environment locally using "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/cli","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":". Install it by running:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":" @opensumi/cli "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-g"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"initialize-the-extension-template","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#initialize-the-extension-template","ariaLabel":"initialize the extension template permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Initialize the extension template"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi init"}]},{"type":"text","value":" and enter the extension "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"name"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"publisher"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"displayName"}]},{"type":"text","value":", and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"description"}]},{"type":"text","value":" as prompted."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01A9Ic8J1nGRi2E8aOr_!!6000000005062-2-tps-838-438.png","alt":"sumi-init"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"running-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#running-extension","ariaLabel":"running extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Running extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Install the dependencies using:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extensions initialized based on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" include basic running and building scripts in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":". It is recommended to run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm run watch"}]},{"type":"text","value":" in the background during the development stage to compile the extension code in real time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm run dev"}]},{"type":"text","value":" in the extension directory to start a web version of OpenSumi IDE and load the current extension into it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"compile\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi compile\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"watch\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi watch\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dev\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi dev -e=$(pwd)\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Or run the development command of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" directly in the extension directory, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi dev"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Monitor and compile code automatically"}]},{"type":"text","value":"\n$ sumi dev   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Start the OpenSumi Web version development environment"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01M4UZxy1q1jpwR9PtM_!!6000000005436-2-tps-986-334.png","alt":"sumi-dev"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open "},{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1:50999","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1:50999"}]},{"type":"text","value":" in the browser to open a web version of OpenSumi IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"command-usage-engine-version-control","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#command-usage-engine-version-control","ariaLabel":"command usage engine version control permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Command usage### Engine Version Control"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi, there are many release versions. Before developing a extension, you need to make sure that the extension API you are using is supported by the corresponding "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" version. You can check the current version information through the following command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"ls"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01egTvGF1nQWQB3JQtO_!!6000000005084-2-tps-532-196.png","alt":"sumi-engine-ls"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can see all "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" version information by the following command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine ls-remote"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When switching versions, you only need to switch with the following command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine use "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"version"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When encountering abnormal performance of extension functions, updating "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" to the latest version for testing is a more effective means of verification."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"set-compilation-success-callback","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#set-compilation-success-callback","ariaLabel":"set compilation success callback permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Set compilation success callback"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When running the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi watch"}]},{"type":"text","value":" command, OpenSumi CLI supports executing a callback after each successful compilation, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--onSuccess"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'echo hello world'"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"specify-the-working-directory","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#specify-the-working-directory","ariaLabel":"specify the working directory permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"specify the working directory"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Support specifying working directory when running "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi dev"}]},{"type":"text","value":" command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-w"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/vscode"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This will start OpenSumi IDE with the path passed in as the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"text","value":" parameter and the current directory as the extension, as shown in the image below:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN010Yu9Be1jgm0jSYwUt_!!6000000004578-2-tps-1200-802.png","alt":"set-workspace"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"specify-the-base-plugin","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#specify-the-base-plugin","ariaLabel":"specify the base plugin permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Specify the base plugin"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi CLI does not have any built-in plug-ins. When your plug-ins rely on some capabilities of other plug-ins, you can soft-link or directly copy these plug-ins to the plug-in directory of OpenSumi CLI. The default plug-in directory is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi-dev in the user's Home directory /extensions"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"specify-ide-server-port","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#specify-ide-server-port","ariaLabel":"specify ide server port permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Specify IDE Server port"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi CLI supports specifying the listening port of IDE Server via "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"-p"}]},{"type":"text","value":", the default is "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"50999"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-p"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8989"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# ..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"debug","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#debug","ariaLabel":"debug permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"debug"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Run in the extension directory"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Start OpenSumi IDE debug mode"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# or specify the extension directory"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext1,/path/to/ext2"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"use-vs-code--opensumi-ide-for-breakpoint-debugging","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-vs-code--opensumi-ide-for-breakpoint-debugging","ariaLabel":"use vs code  opensumi ide for breakpoint debugging permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use VS Code / OpenSumi IDE for breakpoint debugging"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Extension Host Process is a Node.js process, and the extension code can be debugged by configuring "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"launch.json"}]},{"type":"text","value":" in VS Code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// A launch configuration that compiles the extension and then opens it inside a new window"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Use IntelliSense to learn about possible attributes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Hover to view descriptions of existing attributes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"version\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"0.2.0\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"configurations\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"node\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"request\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"attach\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"                           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Attach mode"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"name\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Attach to Extension Host\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"port\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9889"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"                                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extension process port, not modifiable"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"skipFiles\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/**\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sourceMaps\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"                            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Turn on SourceMap for easy source mapping"}]},{"type":"text","value":"\n     "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"outFiles\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"${workspaceFolder}/out/*/.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Specify the extension code output directory"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Select Attach to Extension Host in the VS Code debug panel to use VS Code for breakpoint debugging"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN0118sSJb1KYCCXcZrIS_!!6000000001175-2-tps-1200-683.png","alt":"debug"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The principle of debugging on the local client developed based on OpenSumi is also the same, just place the configuration file under "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi/launch.json"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"If you need to perform breakpoint debugging in typescript source code, you need to enable Sourcemap when compiling"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"specify-the-operating-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#specify-the-operating-environment","ariaLabel":"specify the operating environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Specify the operating environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently, the desktop (Electron) version of the IDE based on the OpenSumi framework is supported as the extension runtime environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"run in terminal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext1,/path/to/ext2 "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/IDE"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"--execute"}]},{"type":"text","value":" parameter indicates the path of the desktop IDE executable file, for example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"#Windows"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/C:"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"Program Files"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"OpenSumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"OpenSumi.exe "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# MacOS"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/Applications/OpenSumi.app/Contents/MacOS/OpenSumi "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When using the desktop version of the IDE, since the desktop version of the IDE may include pre-processes such as creating and selecting projects, it is not possible to specify "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"text","value":" through parameters."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"package-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#package-extension","ariaLabel":"package extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Package Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi package"}]},{"type":"text","value":" command to package your extension."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN012hnLYD1p6wiwKXrHk_!!6000000005312-2-tps-886-618.png","alt":"sumi-package"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi package"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Please make sure that the extension "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" contains a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scripts"}]},{"type":"text","value":" script named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"prepublish"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"prepublishOnly\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/* your compile script */\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This will first run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm list"}]},{"type":"text","value":" to analyze dependencies. If you need to package the node_modules of the extension project, it is recommended to use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm install --production"}]},{"type":"text","value":" to install dependencies, which will only install the modules necessary for runtime."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"exclude-directories","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#exclude-directories","ariaLabel":"exclude directories permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Exclude directories"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When running the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi package"}]},{"type":"text","value":" command, it supports specifying excluded files or directories. Create a new file named "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".vscodeignore"}]},{"type":"text","value":" under the extension project. The format is similar to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".gitignore"}]},{"type":"text","value":". It supports glob pattern matching directories and will be excluded when packaging. these files:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"#.vscodeignore"}]},{"type":"text","value":"\nnode_modules/\nsrc/\nyarn-error.log\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"#..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Or pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"--ignoreFile"}]},{"type":"text","value":" parameter to specify ignore file"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi package "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--ignoreFile"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/.ignore"}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start"},"parent":{"relativePath":"extension/quick-start.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/vscode/overview/page-data.json b/page-data/en/docs/extension/vscode/overview/page-data.json
        index 7de042cd..22486fd7 100644
        --- a/page-data/en/docs/extension/vscode/overview/page-data.json
        +++ b/page-data/en/docs/extension/vscode/overview/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/vscode/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Most standard APIs below VS Code v1.74.0 are currently supported."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi plugins are a superset of VS Code plugins, which means that an OpenSumi plugin can include the VS Code plugin system while also supporting OpenSumi's own plugin system, both of which are optional."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can learn about the related development skills of VS Code plugins through the following documents."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"useful-documents","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#useful-documents","ariaLabel":"useful documents permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Useful Documents"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code Plugin Development Documentation"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code Plugin Samples"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"prerequisites","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#prerequisites","ariaLabel":"prerequisites permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Prerequisites"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"the-first-step-for-non-js-developers","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#the-first-step-for-non-js-developers","ariaLabel":"the first step for non js developers permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"The First Step for Non-JS Developers"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As a reader, you may be proficient in other mainstream languages such as C++, Python, and Java, but you may not be familiar with the language and mode of VS Code and its plugin development based on modern front-end technology."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This chapter refers to the official document mode and gradually introduces you to some programming basics of making plugins, so that you will not be confused when reading the document."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After this chapter, you should be able to read all TypeScript code that appears in the document smoothly and learn the basics of VS Code plugins without obstacles."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"However, if you want to achieve a certain level of TypeScript programming proficiency, please refer to the "},{"type":"element","tagName":"a","properties":{"href":"https://www.typescriptlang.org/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"TypeScript"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Of course, this chapter is not necessary for all readers to read."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can query the corresponding sections according to your preferences or needs. If you have enough experience, you can also skip this chapter."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"front-end-and-client-side-technology","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#front-end-and-client-side-technology","ariaLabel":"front end and client side technology permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Front-end and Client-side Technology"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As we all know, client-side interface technology is a very \"antique\" technology. Since the birth of the graphics system, various client-side development technologies and modes have emerged one after another, eliminating one batch after another."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"On the other hand, web front-end technology is still developing under the support of browsers and network technology. During this period, the browser has been tirelessly optimizing the compiler, and finally raised the JavaScript language to a new height, making the JavaScript language enter the traditional client-side field."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"However, as a developer, you must be aware that even with the support of TypeScript, JavaScript is still not a truly static type language."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Therefore, when using TypeScript, you still need to be cautious and follow the best practices of the community."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The object we are learning in this tutorial, VS Code, is built on the client-side technology named Electron, which evolved from the open-source project Chromium."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It uses a highly efficient JS compiler and browser interface technology to seamlessly integrate the three programming basics of front-end JavaScript, HTML, and CSS, and integrates system-level programming interfaces."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code further encapsulates and optimizes on this basis, separating the editor process and the plugin process, and highly encapsulating the DOM (Document Object Model) interface, prohibiting users from directly modifying the interface."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We can only develop plugins that comply with the specifications through the mode provided by VS Code. Although these regulations restrict the hands and feet of developers, they bring advantages in security, robustness, and performance."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"typescript-and-vs-code","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#typescript-and-vs-code","ariaLabel":"typescript and vs code permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TypeScript and VS Code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"TypeScript was initially developed by Microsoft as a programming language based on JavaScript."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is compatible with all features of JavaScript and extends the type system of JS, making users more comfortable in developing large-scale systems. VS Code naturally supports TypeScript, helping developers write more stable and secure code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Therefore, all examples in the documentation, including the plugins themselves, are mostly developed using TypeScript."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As the saying goes, \"A journey of a thousand miles begins with a single step.\" When you have enough foundation of plugins, reading the documentation will be smoother."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Since VS Code has disabled CSS and HTML, this chapter will not introduce these contents. Interested readers can refer to the "},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/en-US/docs/Web","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MDN Document"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"understanding-typescript-variables-and-types","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#understanding-typescript-variables-and-types","ariaLabel":"understanding typescript variables and types permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Understanding TypeScript Variables and Types"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"TypeScript variables and its type system are essentially the same as JavaScript, but there are a few more things."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For non-JS developers, you may encounter familiar \"enumeration\" and \"tuple\" types. Understanding this may make you feel more at ease and learn TS faster, but this does not mean that you can rest assured."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Although TS extends the type ability of JS, it is still a weakly typed language in essence. Please follow the best practices of the community and be cautious when writing code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For related content learning, please refer to the "},{"type":"element","tagName":"a","properties":{"href":"https://www.typescriptlang.org/docs/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"TypeScript"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start"},"parent":{"relativePath":"extension/vscode/overview.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/vscode/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Most standard APIs below VS Code v1.74.0 are currently supported."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi plugins are a superset of VS Code plugins, which means that an OpenSumi plugin can include the VS Code plugin system while also supporting OpenSumi's own plugin system, both of which are optional."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can learn about the related development skills of VS Code plugins through the following documents."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"useful-documents","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#useful-documents","ariaLabel":"useful documents permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Useful Documents"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code Plugin Development Documentation"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code Plugin Samples"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"prerequisites","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#prerequisites","ariaLabel":"prerequisites permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Prerequisites"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"the-first-step-for-non-js-developers","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#the-first-step-for-non-js-developers","ariaLabel":"the first step for non js developers permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"The First Step for Non-JS Developers"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As a reader, you may be proficient in other mainstream languages such as C++, Python, and Java, but you may not be familiar with the language and mode of VS Code and its plugin development based on modern front-end technology."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This chapter refers to the official document mode and gradually introduces you to some programming basics of making plugins, so that you will not be confused when reading the document."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After this chapter, you should be able to read all TypeScript code that appears in the document smoothly and learn the basics of VS Code plugins without obstacles."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"However, if you want to achieve a certain level of TypeScript programming proficiency, please refer to the "},{"type":"element","tagName":"a","properties":{"href":"https://www.typescriptlang.org/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"TypeScript"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Of course, this chapter is not necessary for all readers to read."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can query the corresponding sections according to your preferences or needs. If you have enough experience, you can also skip this chapter."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"front-end-and-client-side-technology","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#front-end-and-client-side-technology","ariaLabel":"front end and client side technology permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Front-end and Client-side Technology"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As we all know, client-side interface technology is a very \"antique\" technology. Since the birth of the graphics system, various client-side development technologies and modes have emerged one after another, eliminating one batch after another."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"On the other hand, web front-end technology is still developing under the support of browsers and network technology. During this period, the browser has been tirelessly optimizing the compiler, and finally raised the JavaScript language to a new height, making the JavaScript language enter the traditional client-side field."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"However, as a developer, you must be aware that even with the support of TypeScript, JavaScript is still not a truly static type language."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Therefore, when using TypeScript, you still need to be cautious and follow the best practices of the community."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The object we are learning in this tutorial, VS Code, is built on the client-side technology named Electron, which evolved from the open-source project Chromium."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It uses a highly efficient JS compiler and browser interface technology to seamlessly integrate the three programming basics of front-end JavaScript, HTML, and CSS, and integrates system-level programming interfaces."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code further encapsulates and optimizes on this basis, separating the editor process and the plugin process, and highly encapsulating the DOM (Document Object Model) interface, prohibiting users from directly modifying the interface."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We can only develop plugins that comply with the specifications through the mode provided by VS Code. Although these regulations restrict the hands and feet of developers, they bring advantages in security, robustness, and performance."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"typescript-and-vs-code","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#typescript-and-vs-code","ariaLabel":"typescript and vs code permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TypeScript and VS Code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"TypeScript was initially developed by Microsoft as a programming language based on JavaScript."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is compatible with all features of JavaScript and extends the type system of JS, making users more comfortable in developing large-scale systems. VS Code naturally supports TypeScript, helping developers write more stable and secure code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Therefore, all examples in the documentation, including the plugins themselves, are mostly developed using TypeScript."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As the saying goes, \"A journey of a thousand miles begins with a single step.\" When you have enough foundation of plugins, reading the documentation will be smoother."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Since VS Code has disabled CSS and HTML, this chapter will not introduce these contents. Interested readers can refer to the "},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/en-US/docs/Web","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MDN Document"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"understanding-typescript-variables-and-types","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#understanding-typescript-variables-and-types","ariaLabel":"understanding typescript variables and types permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Understanding TypeScript Variables and Types"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"TypeScript variables and its type system are essentially the same as JavaScript, but there are a few more things."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For non-JS developers, you may encounter familiar \"enumeration\" and \"tuple\" types. Understanding this may make you feel more at ease and learn TS faster, but this does not mean that you can rest assured."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Although TS extends the type ability of JS, it is still a weakly typed language in essence. Please follow the best practices of the community and be cautious when writing code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For related content learning, please refer to the "},{"type":"element","tagName":"a","properties":{"href":"https://www.typescriptlang.org/docs/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"TypeScript"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start"},"parent":{"relativePath":"extension/vscode/overview.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/extension/web-extension/page-data.json b/page-data/en/docs/extension/web-extension/page-data.json
        index 4c5b9310..d2a0f1ae 100644
        --- a/page-data/en/docs/extension/web-extension/page-data.json
        +++ b/page-data/en/docs/extension/web-extension/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/web-extension","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi, we provide a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web Worker Extension Host"}]},{"type":"text","value":" implemented by Web Worker, which provides some computing-intensive capabilities that are not related to NodeJS capabilities."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Web Worker API has the capabilities of most Node extension processes, but removes some capabilities that strongly rely on NodeJS, such as FileSystem, Terminal, Task, Debug, etc."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Through this layer of design, we further support "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]},{"type":"text","value":" in VS Code, you can conveniently use it in our pure front-end version Use some pure front-end extensions such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-anycode","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"microsoft/vscode-anycode"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/erha19/vscode/blob/8cea434decbabf5259b47e927eca67afede7ad10/extensions/typescript-language-features/package.json#L76","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"vscode/typescript-language-features"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#usage","ariaLabel":"usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"compatible-with-vs-code-web-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#compatible-with-vs-code-web-extensions","ariaLabel":"compatible with vs code web extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Compatible with VS Code Web Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reference "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In VS Code, specify the Web Extension entry through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" field in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":", which is a required field. At the same time, in addition to not including the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" field, some contribution points are not supported:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localizations"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debuggers"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"typescriptServerPlugins"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Such extensions can be used directly in OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"another-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#another-usage","ariaLabel":"another usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Another usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to being compatible with the usage of VS Code's Web Extensions, OpenSumi also supports the way to import extensions in the Worker environment to execute code by declaring in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker extension is very similar to the NodeJS extension, but it should be noted that some native modules should not be referenced in the Worker extension. At the same time, the Worker API supports two module names from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-worker"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":", because many Worker The plugin is migrated from the NodeJS version, and the module name "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" is reserved to be compatible with this kind of plugin."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// import API from sumi-worker"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi–worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// or sumi, this is for compatibility with some extensions migrated to the Worker environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// import * as sumi from 'sumi';"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// or vscode, also for compatibility with some VS Code extensions migrated to the Worker environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi Worker Extension!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"api-supported","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-supported","ariaLabel":"api supported permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API Supported"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker API is a subset of the NodeJS API. Basically, except for APIs related to FileSystem, Terminal, Task, and Debug, everything else can run in Worker. Currently supported APIs include:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"VS Code API\n"},{"type":"element","tagName":"ul","properties":{"className":["contains-task-list"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" language"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" comments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" workspace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" window"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" env"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"SUMI API\n"},{"type":"element","tagName":"ul","properties":{"className":["contains-task-list"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" layout"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The usage of these APIs remains completely consistent. In other words, if your plugin only uses the above APIs and does not depend on the NodeJS environment, then you can migrate to the Worker plugin smoothly."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions"},"parent":{"relativePath":"extension/web-extension.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/extension/web-extension","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In OpenSumi, we provide a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web Worker Extension Host"}]},{"type":"text","value":" implemented by Web Worker, which provides some computing-intensive capabilities that are not related to NodeJS capabilities."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Web Worker API has the capabilities of most Node extension processes, but removes some capabilities that strongly rely on NodeJS, such as FileSystem, Terminal, Task, Debug, etc."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Through this layer of design, we further support "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]},{"type":"text","value":" in VS Code, you can conveniently use it in our pure front-end version Use some pure front-end extensions such as:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-anycode","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"microsoft/vscode-anycode"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/erha19/vscode/blob/8cea434decbabf5259b47e927eca67afede7ad10/extensions/typescript-language-features/package.json#L76","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"vscode/typescript-language-features"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#usage","ariaLabel":"usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"compatible-with-vs-code-web-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#compatible-with-vs-code-web-extensions","ariaLabel":"compatible with vs code web extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Compatible with VS Code Web Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reference "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In VS Code, specify the Web Extension entry through the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" field in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":", which is a required field. At the same time, in addition to not including the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" field, some contribution points are not supported:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localizations"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debuggers"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"typescriptServerPlugins"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Such extensions can be used directly in OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"another-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#another-usage","ariaLabel":"another usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Another usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to being compatible with the usage of VS Code's Web Extensions, OpenSumi also supports the way to import extensions in the Worker environment to execute code by declaring in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker extension is very similar to the NodeJS extension, but it should be noted that some native modules should not be referenced in the Worker extension. At the same time, the Worker API supports two module names from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-worker"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":", because many Worker The plugin is migrated from the NodeJS version, and the module name "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" is reserved to be compatible with this kind of plugin."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// import API from sumi-worker"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi–worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// or sumi, this is for compatibility with some extensions migrated to the Worker environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// import * as sumi from 'sumi';"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// or vscode, also for compatibility with some VS Code extensions migrated to the Worker environment"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi Worker Extension!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"api-supported","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-supported","ariaLabel":"api supported permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API Supported"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Worker API is a subset of the NodeJS API. Basically, except for APIs related to FileSystem, Terminal, Task, and Debug, everything else can run in Worker. Currently supported APIs include:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"VS Code API\n"},{"type":"element","tagName":"ul","properties":{"className":["contains-task-list"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" language"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" comments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" workspace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" window"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" env"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"SUMI API\n"},{"type":"element","tagName":"ul","properties":{"className":["contains-task-list"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" layout"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The usage of these APIs remains completely consistent. In other words, if your plugin only uses the above APIs and does not depend on the NodeJS environment, then you can migrate to the Worker plugin smoothly."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions"},"parent":{"relativePath":"extension/web-extension.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/browser-extension/opensumi-devtools/page-data.json b/page-data/en/docs/integrate/browser-extension/opensumi-devtools/page-data.json
        index f0d5b836..9fa5fd95 100644
        --- a/page-data/en/docs/integrate/browser-extension/opensumi-devtools/page-data.json
        +++ b/page-data/en/docs/integrate/browser-extension/opensumi-devtools/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/browser-extension/opensumi-devtools","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A Chrome DevTools Extension for any OpenSumi based IDE, with support for both Web clients and Electron clients."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01kCf4wE254ga71iSmB_!!6000000007473-1-tps-1164-879.gif","alt":"OpenSumi DevTools Gif"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"GitHub:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/devtools","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/devtools"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"features","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#features","ariaLabel":"features permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Features"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently OpenSumi DevTools focuses on inner messages capturing and presenting:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"RPC messages between frontend and backend"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"IPC messages("},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues/2359#issuecomment-1495977098","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"partial"}]},{"type":"text","value":") between Electron processes (Electron client only)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Users are allowed to:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toggle capturing"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Filter messages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View parsed messages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Check communication traffic"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Check network latency"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"install","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#install","ariaLabel":"install permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Install"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"See the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/devtools#install","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Install"}]},{"type":"text","value":" section of README."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"integrate","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#integrate","ariaLabel":"integrate permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Integrate"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The installed extension works only when the devtools supports are enabled first. Several options have been provided to allow integrators to decide if the devtools supports are enabled in OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"web-client","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#web-client","ariaLabel":"web client permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Web client"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/bootstrap/app.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]}]},{"type":"text","value":" of the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/tree/main/packages/core-browser","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" package is provided for integrators to bootstrap their Web IDEs. Now we have added a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"devtools"}]},{"type":"text","value":" option to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":". So integrators are allowed to toggle the devtools support for Web clients like "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/startup/entry/web/app.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"this\nexample"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * If enable the support for OpenSumi DevTools\n   * The default is false\n   */"}]},{"type":"text","value":"\n  devtools"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"electron-client","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#electron-client","ariaLabel":"electron client permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Electron client"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the moment, OpenSumi DevTools captures IPC messages in Renderer processes side only. Since Renderer processes also depend on the core-browser package to initialize apps, integrators just need to enable devtools support in core-browser side (see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/tools/electron/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"this"}]},{"type":"text","value":") like they do for Web clients."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools"},"parent":{"relativePath":"integrate/browser-extension/opensumi-devtools.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/browser-extension/opensumi-devtools","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A Chrome DevTools Extension for any OpenSumi based IDE, with support for both Web clients and Electron clients."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01kCf4wE254ga71iSmB_!!6000000007473-1-tps-1164-879.gif","alt":"OpenSumi DevTools Gif"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"GitHub:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/devtools","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/devtools"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"features","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#features","ariaLabel":"features permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Features"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently OpenSumi DevTools focuses on inner messages capturing and presenting:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"RPC messages between frontend and backend"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"IPC messages("},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues/2359#issuecomment-1495977098","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"partial"}]},{"type":"text","value":") between Electron processes (Electron client only)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Users are allowed to:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toggle capturing"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Filter messages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"View parsed messages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Check communication traffic"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Check network latency"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"install","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#install","ariaLabel":"install permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Install"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"See the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/devtools#install","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Install"}]},{"type":"text","value":" section of README."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"integrate","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#integrate","ariaLabel":"integrate permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Integrate"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The installed extension works only when the devtools supports are enabled first. Several options have been provided to allow integrators to decide if the devtools supports are enabled in OpenSumi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"web-client","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#web-client","ariaLabel":"web client permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Web client"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/bootstrap/app.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]}]},{"type":"text","value":" of the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/tree/main/packages/core-browser","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" package is provided for integrators to bootstrap their Web IDEs. Now we have added a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"devtools"}]},{"type":"text","value":" option to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":". So integrators are allowed to toggle the devtools support for Web clients like "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/startup/entry/web/app.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"this\nexample"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * If enable the support for OpenSumi DevTools\n   * The default is false\n   */"}]},{"type":"text","value":"\n  devtools"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"electron-client","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#electron-client","ariaLabel":"electron client permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Electron client"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the moment, OpenSumi DevTools captures IPC messages in Renderer processes side only. Since Renderer processes also depend on the core-browser package to initialize apps, integrators just need to enable devtools support in core-browser side (see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/tools/electron/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"this"}]},{"type":"text","value":") like they do for Web clients."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools"},"parent":{"relativePath":"integrate/browser-extension/opensumi-devtools.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/browser-extension/shortcuts-guard/page-data.json b/page-data/en/docs/integrate/browser-extension/shortcuts-guard/page-data.json
        index 2fc1a1fe..a1b59891 100644
        --- a/page-data/en/docs/integrate/browser-extension/shortcuts-guard/page-data.json
        +++ b/page-data/en/docs/integrate/browser-extension/shortcuts-guard/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/browser-extension/shortcuts-guard","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The shortcuts of IDEs developed based on OpenSumi conflict with those of Chrome, which makes the corresponding actions of IDEs unable to take effect. For example, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl/Cmd + W"}]},{"type":"text","value":" shortcut will close the current browser tab, making IDEs unable to handle this shortcut event. Shortcuts Guard solve the most common used shortcuts conflict."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://gw.alipayobjects.com/zos/antfincdn/WT9eqVueq/9b0b170a-cd32-40ec-9dbf-ea145f6bc800.png","alt":"popup page"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#usage","ariaLabel":"usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Go to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/shortcuts-guard/releases","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"the release page"}]},{"type":"text","value":" of the extension repository or "},{"type":"element","tagName":"a","properties":{"href":"https://chrome.google.com/webstore/detail/shortcuts-guard/nephehdkdelkjgiihmhdjpedpoinmpjl?hl=en-US","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"the Chrome Web Store"}]},{"type":"text","value":" to get the extension."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Click the Chrome Extension icon, and then there is a popup page."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Add a URL which can be a match pattern on the popup page where the extension will guard the IDE shortcuts."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Click the keyboard icon on the upper right corner of the popup page to go to the shortcut settings page, and then input the conflicting shortcuts."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"match-patterns","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#match-patterns","ariaLabel":"match patterns permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Match patterns"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Support clicking the pencil button in the new URL input box on the popup page to automatically obtain the match pattern of the current browser page URL into the input box."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"basic-syntax","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-syntax","ariaLabel":"basic syntax permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Syntax"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" := ://\n := '*' | 'http' | 'https'\n := '*' | '*.' +\n := '/' "}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"examples","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#examples","ariaLabel":"examples permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Examples"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Pattern"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"What it does"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Examples of matching URLs"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that uses the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" scheme"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://example.org/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*/foo*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that uses the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" scheme, on any host, as long as the path starts with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"/foo"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://example.com/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.com/foo/bar.html"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/foo","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/foo"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*.google.com/foo*bar"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that uses the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" scheme, is on a google.com host (such as "},{"type":"element","tagName":"a","properties":{"href":"http://www.google.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"www.google.com"}]},{"type":"text","value":", docs.google.com, or google.com), as long as the path starts with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"/foo"}]},{"type":"text","value":" and ends with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"bar"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/foo/baz/bar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/foo/baz/bar"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://docs.google.com/foobar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://docs.google.com/foobar"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches the specified URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://example.org/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that uses the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http"}]},{"type":"text","value":" scheme and is on the host 127.0.0.1"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1/"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"*://mail.google.com/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that starts with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://mail.google.com"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://mail.google.com"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://mail.google.com/foo/baz/bar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://mail.google.com/foo/baz/bar"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://mail.google.com/foobar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://mail.google.com/foobar"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reference "},{"type":"element","tagName":"a","properties":{"href":"https://developer.chrome.com/docs/extensions/mv3/match_patterns/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Match patterns - Chrome Developers"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"guarded-shortcuts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#guarded-shortcuts","ariaLabel":"guarded shortcuts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Guarded shortcuts"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Windows Shortcut"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Mac Shortcut"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"IDE Action"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Chrome Action"}]}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + n"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + n"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"New file"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open a new window"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close editor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close the current tab"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Show all Symbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open a new tab, and jump to it"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + Shift + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + Shift + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reopen closed editor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reopen previously closed tabs in the order they were closed"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + Shift + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + Shift + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close the current tab"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close the current window"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reference "},{"type":"element","tagName":"a","properties":{"href":"https://support.google.com/chrome/answer/157179?hl=en&co=GENIE.Platform%3DDesktop","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chrome keyboard shortcuts"}]},{"type":"text","value":" and "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code keyboard shortcuts"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard"},"parent":{"relativePath":"integrate/browser-extension/shortcuts-guard.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/browser-extension/shortcuts-guard","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The shortcuts of IDEs developed based on OpenSumi conflict with those of Chrome, which makes the corresponding actions of IDEs unable to take effect. For example, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl/Cmd + W"}]},{"type":"text","value":" shortcut will close the current browser tab, making IDEs unable to handle this shortcut event. Shortcuts Guard solve the most common used shortcuts conflict."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://gw.alipayobjects.com/zos/antfincdn/WT9eqVueq/9b0b170a-cd32-40ec-9dbf-ea145f6bc800.png","alt":"popup page"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#usage","ariaLabel":"usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Go to "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/shortcuts-guard/releases","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"the release page"}]},{"type":"text","value":" of the extension repository or "},{"type":"element","tagName":"a","properties":{"href":"https://chrome.google.com/webstore/detail/shortcuts-guard/nephehdkdelkjgiihmhdjpedpoinmpjl?hl=en-US","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"the Chrome Web Store"}]},{"type":"text","value":" to get the extension."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Click the Chrome Extension icon, and then there is a popup page."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Add a URL which can be a match pattern on the popup page where the extension will guard the IDE shortcuts."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Click the keyboard icon on the upper right corner of the popup page to go to the shortcut settings page, and then input the conflicting shortcuts."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"match-patterns","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#match-patterns","ariaLabel":"match patterns permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Match patterns"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Support clicking the pencil button in the new URL input box on the popup page to automatically obtain the match pattern of the current browser page URL into the input box."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"basic-syntax","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#basic-syntax","ariaLabel":"basic syntax permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Basic Syntax"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" := ://\n := '*' | 'http' | 'https'\n := '*' | '*.' +\n := '/' "}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"examples","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#examples","ariaLabel":"examples permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Examples"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Pattern"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"What it does"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Examples of matching URLs"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that uses the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" scheme"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://example.org/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*/foo*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that uses the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" scheme, on any host, as long as the path starts with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"/foo"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://example.com/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.com/foo/bar.html"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/foo","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/foo"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*.google.com/foo*bar"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that uses the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" scheme, is on a google.com host (such as "},{"type":"element","tagName":"a","properties":{"href":"http://www.google.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"www.google.com"}]},{"type":"text","value":", docs.google.com, or google.com), as long as the path starts with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"/foo"}]},{"type":"text","value":" and ends with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"bar"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/foo/baz/bar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/foo/baz/bar"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://docs.google.com/foobar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://docs.google.com/foobar"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches the specified URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://example.org/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that uses the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http"}]},{"type":"text","value":" scheme and is on the host 127.0.0.1"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1/"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"*://mail.google.com/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Matches any URL that starts with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://mail.google.com"}]},{"type":"text","value":" or "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://mail.google.com"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://mail.google.com/foo/baz/bar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://mail.google.com/foo/baz/bar"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://mail.google.com/foobar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://mail.google.com/foobar"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reference "},{"type":"element","tagName":"a","properties":{"href":"https://developer.chrome.com/docs/extensions/mv3/match_patterns/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Match patterns - Chrome Developers"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"guarded-shortcuts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#guarded-shortcuts","ariaLabel":"guarded shortcuts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Guarded shortcuts"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Windows Shortcut"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Mac Shortcut"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"IDE Action"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Chrome Action"}]}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + n"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + n"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"New file"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open a new window"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close editor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close the current tab"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Show all Symbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open a new tab, and jump to it"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + Shift + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + Shift + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reopen closed editor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reopen previously closed tabs in the order they were closed"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + Shift + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + Shift + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close the current tab"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close the current window"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reference "},{"type":"element","tagName":"a","properties":{"href":"https://support.google.com/chrome/answer/157179?hl=en&co=GENIE.Platform%3DDesktop","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chrome keyboard shortcuts"}]},{"type":"text","value":" and "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code keyboard shortcuts"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard"},"parent":{"relativePath":"integrate/browser-extension/shortcuts-guard.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/extensions-usage/language-for-java/page-data.json b/page-data/en/docs/integrate/extensions-usage/language-for-java/page-data.json
        index db3c918d..fc20e4fc 100644
        --- a/page-data/en/docs/integrate/extensions-usage/language-for-java/page-data.json
        +++ b/page-data/en/docs/integrate/extensions-usage/language-for-java/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/extensions-usage/language-for-java","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With the support of a powerful extension system and complete implementation of LSP, DAP, and Testing protocols, OpenSumi can also develop Java projects, such as Spring Boot or SOFA. It can use the Maven build tool to compile and run projects, and supports the full development, debugging, and testing of Java projects."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To use Java projects, you need to install the following extensions, which can be searched, installed, and downloaded directly from the extension marketplace:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"Language Support "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.4"}]},{"type":"text","value":".0 版本\nDebugger "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.38"}]},{"type":"text","value":".0 版本\nTest runner "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.34"}]},{"type":"text","value":".1 版本"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After installing these three extensions, Java project development can begin."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN019llEwh1u7TG9OOals_!!6000000005990-2-tps-1047-479.png","alt":"Java研发"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If it is a Maven project, you can install this extension:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"Maven "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.35"}]},{"type":"text","value":".1 版本"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then you can use Maven commands for compilation and packaging in the view below the resource manager panel on the left."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01BFznav29sqSeuKrJp_!!6000000008124-0-tps-498-388.jpg","alt":"Maven"},"children":[]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions"},"parent":{"relativePath":"integrate/extensions-usage/language-for-java.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/extensions-usage/language-for-java","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With the support of a powerful extension system and complete implementation of LSP, DAP, and Testing protocols, OpenSumi can also develop Java projects, such as Spring Boot or SOFA. It can use the Maven build tool to compile and run projects, and supports the full development, debugging, and testing of Java projects."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To use Java projects, you need to install the following extensions, which can be searched, installed, and downloaded directly from the extension marketplace:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"Language Support "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.4"}]},{"type":"text","value":".0 版本\nDebugger "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.38"}]},{"type":"text","value":".0 版本\nTest runner "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.34"}]},{"type":"text","value":".1 版本"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After installing these three extensions, Java project development can begin."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN019llEwh1u7TG9OOals_!!6000000005990-2-tps-1047-479.png","alt":"Java研发"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If it is a Maven project, you can install this extension:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"Maven "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.35"}]},{"type":"text","value":".1 版本"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then you can use Maven commands for compilation and packaging in the view below the resource manager panel on the left."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01BFznav29sqSeuKrJp_!!6000000008124-0-tps-498-388.jpg","alt":"Maven"},"children":[]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions"},"parent":{"relativePath":"integrate/extensions-usage/language-for-java.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/module-usage/3-way-merge-editor/page-data.json b/page-data/en/docs/integrate/module-usage/3-way-merge-editor/page-data.json
        index fbde9148..fbf224a1 100644
        --- a/page-data/en/docs/integrate/module-usage/3-way-merge-editor/page-data.json
        +++ b/page-data/en/docs/integrate/module-usage/3-way-merge-editor/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/module-usage/3-way-merge-editor","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"integration-method","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#integration-method","ariaLabel":"integration method permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Integration Method"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Just install the Git plugin."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you are installing version 1.68.1, you need to configure the setting git.experimental.mergeEditor to true.\nIf you are installing version 1.69.0 or later, you need to configure the setting git.mergeEditor to true."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After configuration is complete, you can directly open the conflicting file in the merge change view of the scm panel to use the3-way interaction."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"first-lets-take-a-look-at-the-effect","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#first-lets-take-a-look-at-the-effect","ariaLabel":"first lets take a look at the effect permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"First, let's take a look at the effect"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN010IFGBV1GreZ1rg5CB_!!6000000000676-1-tps-924-491.gif","alt":"3-way"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"how-to-use3-way-merge-editor-new-interaction-to-solve-code-conflicts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-use3-way-merge-editor-new-interaction-to-solve-code-conflicts","ariaLabel":"how to use3 way merge editor new interaction to solve code conflicts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to use3-way merge editor new interaction to solve code conflicts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01HgqlKH1DZqJZh25jd_!!6000000000231-0-tps-1500-718.jpg","alt":"截屏2023-02-06 15.55.34.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"3-way merge editor provides a more intuitive and rich code conflict resolution interaction, mainly composed of three windows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The left editor displays a read-only copy of the current local disk file."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The right editor displays a read-only copy of the file passed in from the remote repository."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The middle editor displays the read-write file of the common ancestor base branch of the two conflicting branches. All the results of the conflict resolution interaction are displayed in the middle view."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"planttext"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-planttext"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-planttext"]},"children":[{"type":"text","value":"3-way merge editor uses Git's own diff3 feature to show you why your code file conflicts, and displays all code changes to the file (whether or not these changes are in conflict).\n\nIn contrast, the old version of conflict resolution only shows you where there are conflicting changes, and automatically merges incoming files in other areas that have not experienced conflicts.\n\nTherefore, in the3-way view, you will see interactive operations even in areas without conflicts. These are necessary operating steps."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"operation-steps","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#operation-steps","ariaLabel":"operation steps permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Operation steps"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"1-click-on-the-conflicting-file-within-the-source-code-management-panel-to-pop-up-the3-way-merge-editor-panel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#1-click-on-the-conflicting-file-within-the-source-code-management-panel-to-pop-up-the3-way-merge-editor-panel","ariaLabel":"1 click on the conflicting file within the source code management panel to pop up the3 way merge editor panel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"1. Click on the conflicting file within the source code management panel to pop up the3-way merge editor panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"2-to-resolve-conflicts-you-can-decide-whether-to-accept-the-conflicting-code-fragments-on-the-left-local-or-right-remote-repository-by-using-the-operation-options-accept--or-ignore-x-and-check-whether-the-code-after-conflict-resolution-in-the-middle-view-meets-your-expectations","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#2-to-resolve-conflicts-you-can-decide-whether-to-accept-the-conflicting-code-fragments-on-the-left-local-or-right-remote-repository-by-using-the-operation-options-accept--or-ignore-x-and-check-whether-the-code-after-conflict-resolution-in-the-middle-view-meets-your-expectations","ariaLabel":"2 to resolve conflicts you can decide whether to accept the conflicting code fragments on the left local or right remote repository by using the operation options accept  or ignore x and check whether the code after conflict resolution in the middle view meets your expectations permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"2. To resolve conflicts, you can decide whether to accept the conflicting code fragments on the left (local) or right (remote repository) by using the operation options (accept >> or ignore x), and check whether the code after conflict resolution in the middle view meets your expectations."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"a-for-code-areas-without-conflicts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#a-for-code-areas-without-conflicts","ariaLabel":"a for code areas without conflicts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"a. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"For code areas without conflicts"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01JipHOl1g2ykh4JpcJ_!!6000000004085-2-tps-1364-473.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"b-for-code-areas-with-conflicts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#b-for-code-areas-with-conflicts","ariaLabel":"b for code areas with conflicts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"b. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"For code areas with conflicts"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01N75a2S1QHbY7VhH4W_!!6000000001951-2-tps-1393-296.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"c-if-you-choose-to-accept-the-code-content-on-the-left-but-still-want-to-accept-the-code-content-on-the-right-equivalent-to-accepting-the-combination","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#c-if-you-choose-to-accept-the-code-content-on-the-left-but-still-want-to-accept-the-code-content-on-the-right-equivalent-to-accepting-the-combination","ariaLabel":"c if you choose to accept the code content on the left but still want to accept the code content on the right equivalent to accepting the combination permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"c. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"If you choose to accept the code content on the left, but still want to accept the code content on the right (equivalent to accepting the combination)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01IDqxvg1Yqsz1o2a6p_!!6000000003111-2-tps-1375-309.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"d-for-simple-conflicts-for-example-if-a-code-area-has-been-modified-on-both-the-left-and-right-sides-but-this-modification-does-not-cause-a-conflict-one-click-merge-changes-will-be-provided","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#d-for-simple-conflicts-for-example-if-a-code-area-has-been-modified-on-both-the-left-and-right-sides-but-this-modification-does-not-cause-a-conflict-one-click-merge-changes-will-be-provided","ariaLabel":"d for simple conflicts for example if a code area has been modified on both the left and right sides but this modification does not cause a conflict one click merge changes will be provided permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"d. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"For simple conflicts (for example, if a code area has been modified on both the left and right sides, but this modification does not cause a conflict, one-click merge changes will be provided)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01NjznPQ23CoPxApQM9_!!6000000007220-2-tps-1377-301.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"3-after-resolving-the-conflict-click-apply-changes-to-save-the-final-result","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#3-after-resolving-the-conflict-click-apply-changes-to-save-the-final-result","ariaLabel":"3 after resolving the conflict click apply changes to save the final result permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"3. After resolving the conflict, click apply changes to save the final result."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"4-in-the-source-code-management-panel-click-the--button-to-store-the-changed-content","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#4-in-the-source-code-management-panel-click-the--button-to-store-the-changed-content","ariaLabel":"4 in the source code management panel click the  button to store the changed content permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"4. In the source code management panel, click the + button to store the changed content."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01zop9PJ26BqQVmqPb0_!!6000000007624-0-tps-1500-610.jpg","alt":"截屏2023-02-03 17.34.54.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"5-commit-done","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#5-commit-done","ariaLabel":"5 commit done permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"5. Commit done."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction"},"parent":{"relativePath":"integrate/module-usage/3-way-merge-editor.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/module-usage/3-way-merge-editor","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"integration-method","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#integration-method","ariaLabel":"integration method permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Integration Method"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Just install the Git plugin."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you are installing version 1.68.1, you need to configure the setting git.experimental.mergeEditor to true.\nIf you are installing version 1.69.0 or later, you need to configure the setting git.mergeEditor to true."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After configuration is complete, you can directly open the conflicting file in the merge change view of the scm panel to use the3-way interaction."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"first-lets-take-a-look-at-the-effect","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#first-lets-take-a-look-at-the-effect","ariaLabel":"first lets take a look at the effect permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"First, let's take a look at the effect"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN010IFGBV1GreZ1rg5CB_!!6000000000676-1-tps-924-491.gif","alt":"3-way"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"how-to-use3-way-merge-editor-new-interaction-to-solve-code-conflicts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-use3-way-merge-editor-new-interaction-to-solve-code-conflicts","ariaLabel":"how to use3 way merge editor new interaction to solve code conflicts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to use3-way merge editor new interaction to solve code conflicts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01HgqlKH1DZqJZh25jd_!!6000000000231-0-tps-1500-718.jpg","alt":"截屏2023-02-06 15.55.34.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"3-way merge editor provides a more intuitive and rich code conflict resolution interaction, mainly composed of three windows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The left editor displays a read-only copy of the current local disk file."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The right editor displays a read-only copy of the file passed in from the remote repository."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The middle editor displays the read-write file of the common ancestor base branch of the two conflicting branches. All the results of the conflict resolution interaction are displayed in the middle view."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"planttext"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-planttext"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-planttext"]},"children":[{"type":"text","value":"3-way merge editor uses Git's own diff3 feature to show you why your code file conflicts, and displays all code changes to the file (whether or not these changes are in conflict).\n\nIn contrast, the old version of conflict resolution only shows you where there are conflicting changes, and automatically merges incoming files in other areas that have not experienced conflicts.\n\nTherefore, in the3-way view, you will see interactive operations even in areas without conflicts. These are necessary operating steps."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"operation-steps","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#operation-steps","ariaLabel":"operation steps permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Operation steps"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"1-click-on-the-conflicting-file-within-the-source-code-management-panel-to-pop-up-the3-way-merge-editor-panel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#1-click-on-the-conflicting-file-within-the-source-code-management-panel-to-pop-up-the3-way-merge-editor-panel","ariaLabel":"1 click on the conflicting file within the source code management panel to pop up the3 way merge editor panel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"1. Click on the conflicting file within the source code management panel to pop up the3-way merge editor panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"2-to-resolve-conflicts-you-can-decide-whether-to-accept-the-conflicting-code-fragments-on-the-left-local-or-right-remote-repository-by-using-the-operation-options-accept--or-ignore-x-and-check-whether-the-code-after-conflict-resolution-in-the-middle-view-meets-your-expectations","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#2-to-resolve-conflicts-you-can-decide-whether-to-accept-the-conflicting-code-fragments-on-the-left-local-or-right-remote-repository-by-using-the-operation-options-accept--or-ignore-x-and-check-whether-the-code-after-conflict-resolution-in-the-middle-view-meets-your-expectations","ariaLabel":"2 to resolve conflicts you can decide whether to accept the conflicting code fragments on the left local or right remote repository by using the operation options accept  or ignore x and check whether the code after conflict resolution in the middle view meets your expectations permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"2. To resolve conflicts, you can decide whether to accept the conflicting code fragments on the left (local) or right (remote repository) by using the operation options (accept >> or ignore x), and check whether the code after conflict resolution in the middle view meets your expectations."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"a-for-code-areas-without-conflicts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#a-for-code-areas-without-conflicts","ariaLabel":"a for code areas without conflicts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"a. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"For code areas without conflicts"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01JipHOl1g2ykh4JpcJ_!!6000000004085-2-tps-1364-473.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"b-for-code-areas-with-conflicts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#b-for-code-areas-with-conflicts","ariaLabel":"b for code areas with conflicts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"b. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"For code areas with conflicts"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01N75a2S1QHbY7VhH4W_!!6000000001951-2-tps-1393-296.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"c-if-you-choose-to-accept-the-code-content-on-the-left-but-still-want-to-accept-the-code-content-on-the-right-equivalent-to-accepting-the-combination","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#c-if-you-choose-to-accept-the-code-content-on-the-left-but-still-want-to-accept-the-code-content-on-the-right-equivalent-to-accepting-the-combination","ariaLabel":"c if you choose to accept the code content on the left but still want to accept the code content on the right equivalent to accepting the combination permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"c. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"If you choose to accept the code content on the left, but still want to accept the code content on the right (equivalent to accepting the combination)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01IDqxvg1Yqsz1o2a6p_!!6000000003111-2-tps-1375-309.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"d-for-simple-conflicts-for-example-if-a-code-area-has-been-modified-on-both-the-left-and-right-sides-but-this-modification-does-not-cause-a-conflict-one-click-merge-changes-will-be-provided","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#d-for-simple-conflicts-for-example-if-a-code-area-has-been-modified-on-both-the-left-and-right-sides-but-this-modification-does-not-cause-a-conflict-one-click-merge-changes-will-be-provided","ariaLabel":"d for simple conflicts for example if a code area has been modified on both the left and right sides but this modification does not cause a conflict one click merge changes will be provided permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"d. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"For simple conflicts (for example, if a code area has been modified on both the left and right sides, but this modification does not cause a conflict, one-click merge changes will be provided)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01NjznPQ23CoPxApQM9_!!6000000007220-2-tps-1377-301.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"3-after-resolving-the-conflict-click-apply-changes-to-save-the-final-result","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#3-after-resolving-the-conflict-click-apply-changes-to-save-the-final-result","ariaLabel":"3 after resolving the conflict click apply changes to save the final result permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"3. After resolving the conflict, click apply changes to save the final result."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"4-in-the-source-code-management-panel-click-the--button-to-store-the-changed-content","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#4-in-the-source-code-management-panel-click-the--button-to-store-the-changed-content","ariaLabel":"4 in the source code management panel click the  button to store the changed content permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"4. In the source code management panel, click the + button to store the changed content."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01zop9PJ26BqQVmqPb0_!!6000000007624-0-tps-1500-610.jpg","alt":"截屏2023-02-03 17.34.54.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"5-commit-done","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#5-commit-done","ariaLabel":"5 commit done permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"5. Commit done."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction"},"parent":{"relativePath":"integrate/module-usage/3-way-merge-editor.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/module-usage/collaboration/page-data.json b/page-data/en/docs/integrate/module-usage/collaboration/page-data.json
        index 48ecae86..e8a81f1d 100644
        --- a/page-data/en/docs/integrate/module-usage/collaboration/page-data.json
        +++ b/page-data/en/docs/integrate/module-usage/collaboration/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/module-usage/collaboration","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can use the hot-pluggable module "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-collaboration"}]},{"type":"text","value":" to implement real-time multi-person collaborative editing for the editor part of your IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"video","properties":{"controls":true,"autoPlay":true,"loop":true,"style":"width:100%"},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"source","properties":{"src":"https://gw.alipayobjects.com/os/antfincdn/BhOIHyo%26E/co-editing-example.mp4","type":"video/mp4"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"platform-support","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#platform-support","ariaLabel":"platform support permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Platform Support"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The module currently only supports the Cloud IDE scenario of Browser + Node."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"how-to-use","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-use","ariaLabel":"how to use permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to use"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The use of this module is very simple, just add this module to browser side and node side of your IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// on browser side"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"CommonBrowserModules"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CollaborationModule"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  wsPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your-ws-path-here'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// on node side"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"startServer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"CommonNodeModules"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CollaborationModule"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"And then register your user information to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  info"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" UserInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserInfo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// unique id"}]},{"type":"text","value":"\n  nickname"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// will be displayed on live cursor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here is a simple contribution to this module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CollaborationModuleContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  UserInfo\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-collaboration'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CollaborationModuleContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SampleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  info"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" UserInfo "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your id'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    nickname"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your name'"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently collaborative communication goes through TCP port 12345. URL(except port) of the collaborative communication is the same as your IDE server's "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/5511c0c2f625f814100271c405f96861cde8643b/packages/core-browser/src/react-providers/config-provider.tsx#L81","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"wsPath"}]},{"type":"text","value":" defined in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":". Please check and configure your server's firewall settings."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"limitations","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#limitations","ariaLabel":"limitations permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Limitations"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently, the collaborative editing module is an "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"early version"}]},{"type":"text","value":". Moreover, since the current design of OpenSumi considers the one-to-one architecture of client (Browser)/server (Node), this module still has many limitations."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Co-editing functions outside the IDE editor (such as terminal) are not supported"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Does not support handling external modifications to workspace files (like "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git pull"}]},{"type":"text","value":", where file content was modified with other software instead of an editor)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Does not support front-end-only and Electron platform"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Does not support cross-file modification within the IDE (such as variable renaming, a kind of refactoring using the vscode plugin)"}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module"},"parent":{"relativePath":"integrate/module-usage/collaboration.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/module-usage/collaboration","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can use the hot-pluggable module "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-collaboration"}]},{"type":"text","value":" to implement real-time multi-person collaborative editing for the editor part of your IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"video","properties":{"controls":true,"autoPlay":true,"loop":true,"style":"width:100%"},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"source","properties":{"src":"https://gw.alipayobjects.com/os/antfincdn/BhOIHyo%26E/co-editing-example.mp4","type":"video/mp4"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"platform-support","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#platform-support","ariaLabel":"platform support permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Platform Support"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The module currently only supports the Cloud IDE scenario of Browser + Node."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"how-to-use","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-use","ariaLabel":"how to use permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to use"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The use of this module is very simple, just add this module to browser side and node side of your IDE."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// on browser side"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"CommonBrowserModules"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CollaborationModule"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  wsPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your-ws-path-here'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// on node side"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"startServer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"CommonNodeModules"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CollaborationModule"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"And then register your user information to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  info"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" UserInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserInfo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// unique id"}]},{"type":"text","value":"\n  nickname"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// will be displayed on live cursor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here is a simple contribution to this module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CollaborationModuleContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  UserInfo\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-collaboration'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CollaborationModuleContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SampleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  info"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" UserInfo "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your id'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    nickname"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your name'"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently collaborative communication goes through TCP port 12345. URL(except port) of the collaborative communication is the same as your IDE server's "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/5511c0c2f625f814100271c405f96861cde8643b/packages/core-browser/src/react-providers/config-provider.tsx#L81","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"wsPath"}]},{"type":"text","value":" defined in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":". Please check and configure your server's firewall settings."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"limitations","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#limitations","ariaLabel":"limitations permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Limitations"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Currently, the collaborative editing module is an "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"early version"}]},{"type":"text","value":". Moreover, since the current design of OpenSumi considers the one-to-one architecture of client (Browser)/server (Node), this module still has many limitations."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Co-editing functions outside the IDE editor (such as terminal) are not supported"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Does not support handling external modifications to workspace files (like "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git pull"}]},{"type":"text","value":", where file content was modified with other software instead of an editor)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Does not support front-end-only and Electron platform"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Does not support cross-file modification within the IDE (such as variable renaming, a kind of refactoring using the vscode plugin)"}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module"},"parent":{"relativePath":"integrate/module-usage/collaboration.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/module-usage/terminal-basic-usage/page-data.json b/page-data/en/docs/integrate/module-usage/terminal-basic-usage/page-data.json
        index 1abc35f3..445b2cae 100644
        --- a/page-data/en/docs/integrate/module-usage/terminal-basic-usage/page-data.json
        +++ b/page-data/en/docs/integrate/module-usage/terminal-basic-usage/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/module-usage/terminal-basic-usage","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When implementing certain functions, we need to use the terminal module, such as automatically installing node_modules for users when opening a workspace."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi internally encapsulates the ability to operate the terminal through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-terminal-next"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Now we will use some examples to show you how to use the terminal-related capabilities."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"outputting-hello-world-in-the-terminal","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#outputting-hello-world-in-the-terminal","ariaLabel":"outputting hello world in the terminal permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Outputting \"Hello World\" in the Terminal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" layer, we can operate the terminal through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalController"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, if we want to open a new terminal and display it on the user interface, we can do it like this:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITerminalController "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-terminal-next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" CommandContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TerminalContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"echoHelloWorld"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" client "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createTerminalWithWidget"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      config"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Something'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        executable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'bash'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        args"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'-c'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'echo Hello World'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onOutput"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"output "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"output"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onExit"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"exit "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Terminal exited with code "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"exit"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"code"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"term"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"writeln"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Terminal exited with code '"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" exit"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"code"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"term"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"writeln"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello from the other side.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createTerminalWithWidget"}]},{"type":"text","value":" is used to create a terminal and display it on the user interface."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After executing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"echo Hello World"}]},{"type":"text","value":", the bash will exit directly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"executing-code-classlanguage-textnpm-installcode-in-the-terminal","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#executing-code-classlanguage-textnpm-installcode-in-the-terminal","ariaLabel":"executing code classlanguage textnpm installcode in the terminal permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Executing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm install"}]},{"type":"text","value":" in the Terminal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition, we can also start a live terminal and then send commands through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.sendText"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITerminalController "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-terminal-next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  isWindows"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TerminalContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"installDeps"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Unlike `createTerminalWithWidget` in the first example,"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// this command will not display the terminal on the user interface by default,"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// and there will be fewer configurations available compared to `createTerminalWithWidget`."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" client "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createTerminal"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" config"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Install Dependencies'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showTerminalPanel"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"attached"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"promise"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" returnChar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" isWindows "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'\\r\\n'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'\\n'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'npm install'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" returnChar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sendText"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"command"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"summary","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#summary","ariaLabel":"summary permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Summary"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the above examples, we demonstrated how to create a terminal and display it on the user interface, as well as how to execute commands in the terminal."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.onOutput"}]},{"type":"text","value":" to listen for the output of the terminal and use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.onExit"}]},{"type":"text","value":" to listen for the exit of the terminal. In addition, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient"}]},{"type":"text","value":" has many other capabilities, such as searching for content in the terminal, getting the user's selected content, and so on."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.term"}]},{"type":"text","value":" to get the xTerm instance and use the xTerm API to operate the terminal."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The above code can be found at "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-usage/browser","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-usage/browser"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage"},"parent":{"relativePath":"integrate/module-usage/terminal-basic-usage.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/module-usage/terminal-basic-usage","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When implementing certain functions, we need to use the terminal module, such as automatically installing node_modules for users when opening a workspace."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi internally encapsulates the ability to operate the terminal through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-terminal-next"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Now we will use some examples to show you how to use the terminal-related capabilities."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"outputting-hello-world-in-the-terminal","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#outputting-hello-world-in-the-terminal","ariaLabel":"outputting hello world in the terminal permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Outputting \"Hello World\" in the Terminal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" layer, we can operate the terminal through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalController"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, if we want to open a new terminal and display it on the user interface, we can do it like this:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITerminalController "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-terminal-next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" CommandContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TerminalContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"echoHelloWorld"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" client "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createTerminalWithWidget"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      config"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Something'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        executable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'bash'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        args"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'-c'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'echo Hello World'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onOutput"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"output "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"output"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onExit"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"exit "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Terminal exited with code "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"exit"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"code"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"term"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"writeln"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Terminal exited with code '"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" exit"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"code"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"term"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"writeln"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello from the other side.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createTerminalWithWidget"}]},{"type":"text","value":" is used to create a terminal and display it on the user interface."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After executing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"echo Hello World"}]},{"type":"text","value":", the bash will exit directly."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"executing-code-classlanguage-textnpm-installcode-in-the-terminal","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#executing-code-classlanguage-textnpm-installcode-in-the-terminal","ariaLabel":"executing code classlanguage textnpm installcode in the terminal permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Executing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm install"}]},{"type":"text","value":" in the Terminal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition, we can also start a live terminal and then send commands through "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.sendText"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITerminalController "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-terminal-next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  isWindows"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TerminalContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"installDeps"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Unlike `createTerminalWithWidget` in the first example,"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// this command will not display the terminal on the user interface by default,"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// and there will be fewer configurations available compared to `createTerminalWithWidget`."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" client "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createTerminal"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" config"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Install Dependencies'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showTerminalPanel"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"attached"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"promise"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" returnChar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" isWindows "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'\\r\\n'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'\\n'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'npm install'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" returnChar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sendText"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"command"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"summary","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#summary","ariaLabel":"summary permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Summary"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the above examples, we demonstrated how to create a terminal and display it on the user interface, as well as how to execute commands in the terminal."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.onOutput"}]},{"type":"text","value":" to listen for the output of the terminal and use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.onExit"}]},{"type":"text","value":" to listen for the exit of the terminal. In addition, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient"}]},{"type":"text","value":" has many other capabilities, such as searching for content in the terminal, getting the user's selected content, and so on."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.term"}]},{"type":"text","value":" to get the xTerm instance and use the xTerm API to operate the terminal."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The above code can be found at "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-usage/browser","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-usage/browser"}]},{"type":"text","value":"."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage"},"parent":{"relativePath":"integrate/module-usage/terminal-basic-usage.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/overview/page-data.json b/page-data/en/docs/integrate/overview/page-data.json
        index 6d612f89..cde397ff 100644
        --- a/page-data/en/docs/integrate/overview/page-data.json
        +++ b/page-data/en/docs/integrate/overview/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi framework aims to solve the redundant building problem of IDE product development within Alibaba, endeavours to fulfill IDE customization capabilities in more vertical scenarios and implement the shared underlying layer of Web and local clients, so that IDE development can move from the early \"slash-and-burn\" era to the \"machine-based mass production\" era."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you are interested in building OpenSumi's framework, welcome to view "},{"type":"element","tagName":"a","properties":{"href":"../develop/how-to-contribute"},"children":[{"type":"text","value":"How to contribute code"}]},{"type":"text","value":" and help build the OpenSumi framework."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"overall-architecture","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overall-architecture","ariaLabel":"overall architecture permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overall Architecture"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To ensure that the framework can run in both "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Electron"}]},{"type":"text","value":" environments, OpenSumi uses a set of project structure that separate the frontend and backend, call each other by a layer of abstract communication."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"On "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web"}]},{"type":"text","value":", we use "},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebSocket"}]},{"type":"text","value":" to communicate."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"On "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Electron"}]},{"type":"text","value":", we use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IPC"}]},{"type":"text","value":" communication."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Each communicating connection corresponds to a separate "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/dependence-injector"},"children":[{"type":"text","value":"DI (Dependence Inject)"}]},{"type":"text","value":"container on the front and back ends, so "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"OpenSumi's backend implementation is stateless"}]},{"type":"text","value":" and different connections are strictly isolated from each other."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are three core processes within OpenSumi:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Extension process(Extension Process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Backend process (Node Process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Frontend process(Browser Process)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To ensure that extension problems do not affect IDE performance, OpenSumi uses a similar solution in terms of extension capabilities: similar to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code"}]},{"type":"text","value":", the extension is enabled by a separate extension process, and the extension process communicates with the frontend process by the backend process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The different capability implementations of OpenSumi are split into different modules. The modules have a weak dependency on each other by using "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution Point"}]},{"type":"text","value":" and "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/dependence-injector"},"children":[{"type":"text","value":"Dependence Inject"}]},{"type":"text","value":". Some core basic modules, such as theme service and layout service, are also directly dependent by other modules."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Therefore, it is necessary to ensure the introduction sequence of some modules during the integration development process."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The overall start-up life cycle is shown in the following diagram."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01G6C1nf21GoZEzAlJk_!!6000000006958-2-tps-1564-874.png","alt":"Life Cycle"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"what-is-a-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#what-is-a-module","ariaLabel":"what is a module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"What Is a Module?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A module refers to a package in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package"}]},{"type":"text","value":" directory in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":". It can be published to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" and referenced by installing dependencies at integration time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Typically, a module is a standalone feature implementation, for example, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debug"}]},{"type":"text","value":" module implements a layer of generic debugging adapters based on "},{"type":"element","tagName":"a","properties":{"href":"https://microsoft.github.io/debug-adapter-protocol/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"DAP"}]},{"type":"text","value":", core features including debugger front-end and session management. It is provided to extensions to call by means of extension APIs."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following is the basic structure of a module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── __tests__\n│   ├── browser\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── src\n│   ├── browser\n│   ├── common\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── webpack.config.js\n└── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":", you can automatically create and associate references by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn run create [module name]"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Module includes both "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" level code and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" level code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" layer code is generally used to handle view-related capabilities. Taking "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" module in OpenSumi as an example, the search interface is implemented by the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" layer."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":" layer code is generally used to handle the logic that uses "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node.js"}]},{"type":"text","value":" capabilities, for example, the global search capability in the search panel is implemented by the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":" layer."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common"}]},{"type":"text","value":" layer is generally used to store some public variables, tool methods, type declarations and so on."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"expand-browser-layer-capability","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#expand-browser-layer-capability","ariaLabel":"expand browser layer capability permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Expand Browser layer Capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We extend the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" layer capability with the following file structure. You can extend this capability by declaring the relevant content in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"providers"}]},{"type":"text","value":". For detailed examples, see "},{"type":"element","tagName":"a","properties":{"href":"../develop/sample/overview"},"children":[{"type":"text","value":"Todo List cases"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Browser module entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" HelloWorld "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./hello-world.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ModuleDemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"providers"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extend-node-layer-capability","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extend-node-layer-capability","ariaLabel":"extend node layer capability permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extend Node Layer Capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We extend the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" layer capability with the following file structure. You can extend this capability by declaring the relevant content in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"providers"}]},{"type":"text","value":". For detailed examples, see "},{"type":"element","tagName":"a","properties":{"href":"../develop/sample/overview"},"children":[{"type":"text","value":"Todo List case"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node module entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ModuleDemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"providers"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"what-is-an-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#what-is-an-extension","ariaLabel":"what is an extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"What Is an Extension?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extension, is a type of program files supported by OpenSumi framework. By installing extension files on a specific location, the interface and functions of IDE can be re-developed. It is designed to be compatible with the "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VSCode Extension API"}]},{"type":"text","value":", that is, IDE products developed by OpenSumi are naturally compatible with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" plug-in system."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01gHphRQ26x18NyYeTz_!!6000000007727-2-tps-1156-800.png","alt":"Extension"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"See "},{"type":"element","tagName":"a","properties":{"href":"../extension/overview"},"children":[{"type":"text","value":"Extension API Overview"}]},{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-to-release","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-release","ariaLabel":"how to release permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to Release"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Due to protocol issues, OpenSumi cannot directly use the VS Code extension market source. By default OpenSumi currently integrates with "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":" service developed by Eclipse company. Developers can use directly the service or build their own extension Marketplace based on "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":". Later on, we will also build our own extension marketplace to develop free extension hosting services for more developers."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reference documentation:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/eclipse/openvsx/wiki/Publishing-Extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Publishing Extensions"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction"},"parent":{"relativePath":"integrate/overview.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi framework aims to solve the redundant building problem of IDE product development within Alibaba, endeavours to fulfill IDE customization capabilities in more vertical scenarios and implement the shared underlying layer of Web and local clients, so that IDE development can move from the early \"slash-and-burn\" era to the \"machine-based mass production\" era."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you are interested in building OpenSumi's framework, welcome to view "},{"type":"element","tagName":"a","properties":{"href":"../develop/how-to-contribute"},"children":[{"type":"text","value":"How to contribute code"}]},{"type":"text","value":" and help build the OpenSumi framework."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"overall-architecture","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overall-architecture","ariaLabel":"overall architecture permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overall Architecture"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To ensure that the framework can run in both "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Electron"}]},{"type":"text","value":" environments, OpenSumi uses a set of project structure that separate the frontend and backend, call each other by a layer of abstract communication."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"On "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web"}]},{"type":"text","value":", we use "},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebSocket"}]},{"type":"text","value":" to communicate."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"On "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Electron"}]},{"type":"text","value":", we use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IPC"}]},{"type":"text","value":" communication."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Each communicating connection corresponds to a separate "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/dependence-injector"},"children":[{"type":"text","value":"DI (Dependence Inject)"}]},{"type":"text","value":"container on the front and back ends, so "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"OpenSumi's backend implementation is stateless"}]},{"type":"text","value":" and different connections are strictly isolated from each other."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are three core processes within OpenSumi:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Extension process(Extension Process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Backend process (Node Process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Frontend process(Browser Process)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To ensure that extension problems do not affect IDE performance, OpenSumi uses a similar solution in terms of extension capabilities: similar to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code"}]},{"type":"text","value":", the extension is enabled by a separate extension process, and the extension process communicates with the frontend process by the backend process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The different capability implementations of OpenSumi are split into different modules. The modules have a weak dependency on each other by using "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution Point"}]},{"type":"text","value":" and "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/dependence-injector"},"children":[{"type":"text","value":"Dependence Inject"}]},{"type":"text","value":". Some core basic modules, such as theme service and layout service, are also directly dependent by other modules."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Therefore, it is necessary to ensure the introduction sequence of some modules during the integration development process."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The overall start-up life cycle is shown in the following diagram."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01G6C1nf21GoZEzAlJk_!!6000000006958-2-tps-1564-874.png","alt":"Life Cycle"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"what-is-a-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#what-is-a-module","ariaLabel":"what is a module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"What Is a Module?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A module refers to a package in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package"}]},{"type":"text","value":" directory in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":". It can be published to "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" and referenced by installing dependencies at integration time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Typically, a module is a standalone feature implementation, for example, the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debug"}]},{"type":"text","value":" module implements a layer of generic debugging adapters based on "},{"type":"element","tagName":"a","properties":{"href":"https://microsoft.github.io/debug-adapter-protocol/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"DAP"}]},{"type":"text","value":", core features including debugger front-end and session management. It is provided to extensions to call by means of extension APIs."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following is the basic structure of a module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── __tests__\n│   ├── browser\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── src\n│   ├── browser\n│   ├── common\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── webpack.config.js\n└── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":", you can automatically create and associate references by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn run create [module name]"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Module includes both "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" level code and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" level code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" layer code is generally used to handle view-related capabilities. Taking "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" module in OpenSumi as an example, the search interface is implemented by the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" layer."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":" layer code is generally used to handle the logic that uses "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node.js"}]},{"type":"text","value":" capabilities, for example, the global search capability in the search panel is implemented by the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":" layer."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common"}]},{"type":"text","value":" layer is generally used to store some public variables, tool methods, type declarations and so on."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"expand-browser-layer-capability","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#expand-browser-layer-capability","ariaLabel":"expand browser layer capability permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Expand Browser layer Capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We extend the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" layer capability with the following file structure. You can extend this capability by declaring the relevant content in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"providers"}]},{"type":"text","value":". For detailed examples, see "},{"type":"element","tagName":"a","properties":{"href":"../develop/sample/overview"},"children":[{"type":"text","value":"Todo List cases"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Browser module entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" HelloWorld "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./hello-world.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ModuleDemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"providers"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extend-node-layer-capability","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extend-node-layer-capability","ariaLabel":"extend node layer capability permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extend Node Layer Capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We extend the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" layer capability with the following file structure. You can extend this capability by declaring the relevant content in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"providers"}]},{"type":"text","value":". For detailed examples, see "},{"type":"element","tagName":"a","properties":{"href":"../develop/sample/overview"},"children":[{"type":"text","value":"Todo List case"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node module entry"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ModuleDemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"providers"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"what-is-an-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#what-is-an-extension","ariaLabel":"what is an extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"What Is an Extension?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extension, is a type of program files supported by OpenSumi framework. By installing extension files on a specific location, the interface and functions of IDE can be re-developed. It is designed to be compatible with the "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VSCode Extension API"}]},{"type":"text","value":", that is, IDE products developed by OpenSumi are naturally compatible with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" plug-in system."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01gHphRQ26x18NyYeTz_!!6000000007727-2-tps-1156-800.png","alt":"Extension"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"See "},{"type":"element","tagName":"a","properties":{"href":"../extension/overview"},"children":[{"type":"text","value":"Extension API Overview"}]},{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-to-release","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-release","ariaLabel":"how to release permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to Release"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Due to protocol issues, OpenSumi cannot directly use the VS Code extension market source. By default OpenSumi currently integrates with "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":" service developed by Eclipse company. Developers can use directly the service or build their own extension Marketplace based on "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":". Later on, we will also build our own extension marketplace to develop free extension hosting services for more developers."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reference documentation:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/eclipse/openvsx/wiki/Publishing-Extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Publishing Extensions"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction"},"parent":{"relativePath":"integrate/overview.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/quick-start/electron/page-data.json b/page-data/en/docs/integrate/quick-start/electron/page-data.json
        index b2fbb580..c76fe04e 100644
        --- a/page-data/en/docs/integrate/quick-start/electron/page-data.json
        +++ b/page-data/en/docs/integrate/quick-start/electron/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/quick-start/electron","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi integrates internally a simple Electron framework, and designed to provide a desktop environment to quick test OpenSumi. You can build your own client by using "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"idee-electron"}]},{"type":"text","value":" as a template."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also get the relevant installation package in the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/releases","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Release"}]},{"type":"text","value":" list for a quick experience."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN013APO901bevPEe8Ydx_!!6000000003491-2-tps-2478-1624.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"compatible-environments","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#compatible-environments","ariaLabel":"compatible environments permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Compatible Environments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron 11.4.3+"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"macOS & Linux & Windows 10+"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Node.js 14+"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"local-launch","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#local-launch","ariaLabel":"local launch permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Local Launch"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Note: Because a large number of packages need to be downloaded during the compilation process, and some packages need to access GitHub to download the source code, please keep GitHub accessible. Many 404 Not Found problems are caused by network access failures."}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nChina mainland users who cannot install dependencies properly due to network problems can switch to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-cn"}]},{"type":"text","value":" branch first: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git checkout main-cn"}]},{"type":"text","value":", or refer to the appendix at the end of the article to configure the npm image."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run the following commands in sequence:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-electron.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-electron\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" i\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" build\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" rebuild-native -- --force-rebuild"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"true\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" download-extension "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# install extension (Optional)"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"development","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#development","ariaLabel":"development permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Development"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run in the project root directory"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Start"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"package","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#package","ariaLabel":"package permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Package"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pnpm pack"}]},{"type":"text","value":" to package the project. The installation package will be exported in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"out"}]},{"type":"text","value":" directory."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)"},"parent":{"relativePath":"integrate/quick-start/electron.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/quick-start/electron","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi integrates internally a simple Electron framework, and designed to provide a desktop environment to quick test OpenSumi. You can build your own client by using "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"idee-electron"}]},{"type":"text","value":" as a template."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also get the relevant installation package in the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/releases","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Release"}]},{"type":"text","value":" list for a quick experience."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN013APO901bevPEe8Ydx_!!6000000003491-2-tps-2478-1624.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"compatible-environments","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#compatible-environments","ariaLabel":"compatible environments permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Compatible Environments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron 11.4.3+"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"macOS & Linux & Windows 10+"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Node.js 14+"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"local-launch","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#local-launch","ariaLabel":"local launch permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Local Launch"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Note: Because a large number of packages need to be downloaded during the compilation process, and some packages need to access GitHub to download the source code, please keep GitHub accessible. Many 404 Not Found problems are caused by network access failures."}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nChina mainland users who cannot install dependencies properly due to network problems can switch to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-cn"}]},{"type":"text","value":" branch first: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git checkout main-cn"}]},{"type":"text","value":", or refer to the appendix at the end of the article to configure the npm image."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run the following commands in sequence:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-electron.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-electron\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" i\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" build\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" rebuild-native -- --force-rebuild"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"true\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" download-extension "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# install extension (Optional)"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"development","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#development","ariaLabel":"development permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Development"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run in the project root directory"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Start"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"package","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#package","ariaLabel":"package permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Package"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pnpm pack"}]},{"type":"text","value":" to package the project. The installation package will be exported in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"out"}]},{"type":"text","value":" directory."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)"},"parent":{"relativePath":"integrate/quick-start/electron.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/quick-start/lite/page-data.json b/page-data/en/docs/integrate/quick-start/lite/page-data.json
        index 19fa1707..bc9af1be 100644
        --- a/page-data/en/docs/integrate/quick-start/lite/page-data.json
        +++ b/page-data/en/docs/integrate/quick-start/lite/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/quick-start/lite","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides a pure frontend access that takes you away from the Node environment and provides relatively complete IDE capabilities with a simple B/S architecture in a pure browser environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Before running it, please ensure that Node.js 10.15.x or later is installed in your local environment. Also, OpenSumi relies on some Node.js Addons, to ensure that these Addons are compiled properly. We recommend you to check out the installation guide in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" to set up local environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, you can directly visit our "},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.github.io/ide-startup-lite/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"preview page"}]},{"type":"text","value":" to check out the latest running effect. It supports the branch or tag address, for example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://opensumi.github.io/ide-startup-lite/#https://github.com/opensumi/core/tree/v2.16.0"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"quick-start","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#quick-start","ariaLabel":"quick start permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Quick Start"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Clone "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/ide-startup-lite"}]},{"type":"text","value":",go to the directory and execute the following command to start the IDE:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"shell"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-shell"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-shell"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone https://github.com/opensumi/ide-startup-lite.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup-lite\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":"                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# to install dependency"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" run compile:ext-worker   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# to compile webworker environment"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" run start                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# to start"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" in your browser for preview or development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://gw.alipayobjects.com/mdn/rms_3b03a3/afts/img/A*ZXeHTJFmx3AAAAAAAAAAAAAAARQnAQ","alt":"screenshot"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A fully feasible and pure frontend IDE requires the following implementations:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"File Service Configuration *(mandatory)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Extension Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Language Competence Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Search service Configuration"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"file-service-configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-service-configuration","ariaLabel":"file service configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Service Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The pure frontend version uses "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserFsProvider"}]},{"type":"text","value":" to replace "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DiskFileSystemProvider"}]},{"type":"text","value":" in OpenSumi. The difference is that the original local file service is changed into an http interface service."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/file-provider/browser-fs-provider.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-services","ariaLabel":"file services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Different from full-featured IDEs of container and electron versions, pure frontend version of IDEs generally serves for a vertical and specific scenario, such as code viewing and codereview. The corresponding underlying capabilities are service-oriented. And since the browser itself does not have a file system, it needs an external data source to provide and maintain the file information. In pure frontend version, we need developers to implement the following two methods to support the underlying code viewing capabilities:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/file-provider/http-file-service.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"readDir(uri: Uri): Promise>"}]},{"type":"text","value":":return directory structure information"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"readFile(uri: Uri, encoding?: string): Promise"}]},{"type":"text","value":":return file contents"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To implement preceding two methods enables IDE capabilities in read-only mode. If you want to support code editing feature, you also need to implement the following three methods:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"updateFile(uri: Uri, content: string, options: { encoding?: string; newUri?: Uri; }): Promise"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createFile(uri: Uri, content: string, options: { encoding?: string; }): Promise"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"deleteFile(uri: Uri, options: { recursive?: boolean }): Promise"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After the code is modified, the corresponding method will be called to synchronize to the server end of the integration side. After that, the browser side will cache a new code in memory, and invalid it after refreshing."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-declaration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-declaration","ariaLabel":"extension declaration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Declaration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Because there is no file system in the pure frontend environment, the list of installed extensions and their corresponding details cannot be obtained through the logic of extension scanning, which needs to be declared in advance at integration time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When pure frontend extensions are added to the extension marketplace, a copy of the required resources will be automatically synchronized to oss (you need to enable the configuration"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{ “enableOpenSumiWebAssets”: true }"}]},{"type":"text","value":", after that when building extensions, it will automatically generate the directory list file, sumi-meta.json, which needs to be hosted). Therefore, to employ extensions uploaded to the extension marketplace in an intranet environment, you only need to declare the target extension's id and version in the extension list, and the rest of the logic has been smoothed out:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/extension/index.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" extensionList "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘OpenSumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"vsicons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"slim’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘"},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.0"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":".4"}]},{"type":"text","value":"’ "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘tao"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"o2"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"cr"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"theme’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘"},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"2.6"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":".3"}]},{"type":"text","value":"’ "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘alex"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"typescript"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"language"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"features"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"worker’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘"},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.0"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":".0"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"beta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"2"}]},{"type":"text","value":"’ "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For external users, you can upload some resources generated by extension packaging to the OSS or CDN, and then modify the oss base path in the extension market to a customized path."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"syntax-highlighting-and-code-hints","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#syntax-highlighting-and-code-hints","ariaLabel":"syntax highlighting and code hints permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Syntax Highlighting and Code Hints"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"syntax-highlighting","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#syntax-highlighting","ariaLabel":"syntax highlighting permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Syntax Highlighting"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For performance reasons, the static syntax highlighting capability of the pure frontend version is not registered through extensions by default. We have encapsulated common syntax into a unified NPM package and declared the syntax we want to support directly:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/grammar/index.contribution.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" languages "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  ‘html’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘css’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘javascript’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘less’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘markdown’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘typescript’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Note: We provide both direct Require and dynamic import to introduce syntax declaration files. The former will make bundleSize larger, while the latter deployment costs will be higher. You may take your chooice when integration."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"single-file-syntax-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#single-file-syntax-service","ariaLabel":"single file syntax service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Single File Syntax Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is based on pure frontend extension (Worker version) capabilities, providing basic hints of common syntax. Due to no file service, the worker version syntax prompt that extensions only support single-file code hints and do not support cross-file analysis, which is basically sufficient for pure frontend lightweight editing scenarios. The following is the Syntax hint extensions currently available:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" languageExtensions "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.typescript-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.2'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.markdown-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.2'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.html-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.json-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.css-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Add the syntax prompt extension directly to the extension list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"lsif-syntax-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#lsif-syntax-service","ariaLabel":"lsif syntax service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Lsif Syntax Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For pure browsing scenarios such as code viewing and Code review, the "},{"type":"element","tagName":"a","properties":{"href":"https://microsoft.github.io/language-server-protocol/specifications/lsif/0.6.0/specification/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"LSIF Scheme"}]},{"type":"text","value":" based on offline indexing analysis will support cross-file Hover hints and code skipping without any additional analysis overhead on the browser side. OpenSumi pure frontend version integrated with lsif client, and just need a simple docking to access lsif service."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/language-service/lsif-service/lsif-client.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ILsifPayload"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  repository"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  commit"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  path"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  character"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  line"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ILsifClient"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"exists"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"repo"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" commit"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hover"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Hover"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"definition"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Location"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"reference"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Location"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"search-capability","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#search-capability","ariaLabel":"search capability permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Search Capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The search function is optional and is not enabled by default. The core search capability lies in the implementation of file-search and the backend part of the search module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-search","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-search","ariaLabel":"file search permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To make the file search function (triggered by cmd+p) possible, you need to implement following method:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IFileSearchService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * finds files by a given search pattern.\n   * @return the matching paths, relative to the given `options.rootUri`.\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"find"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    searchPattern"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IFileSearchService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    cancellationToken"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CancellationToken\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Replace the default mock-file-seach.ts after implementation."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-content-search","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-content-search","ariaLabel":"file content search permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Content Search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The implementation of the file content search function requires modification of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search.service.ts"}]},{"type":"text","value":", and the official implementation is not available at this time."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)"},"parent":{"relativePath":"integrate/quick-start/lite.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/quick-start/lite","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides a pure frontend access that takes you away from the Node environment and provides relatively complete IDE capabilities with a simple B/S architecture in a pure browser environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Before running it, please ensure that Node.js 10.15.x or later is installed in your local environment. Also, OpenSumi relies on some Node.js Addons, to ensure that these Addons are compiled properly. We recommend you to check out the installation guide in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" to set up local environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At the same time, you can directly visit our "},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.github.io/ide-startup-lite/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"preview page"}]},{"type":"text","value":" to check out the latest running effect. It supports the branch or tag address, for example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://opensumi.github.io/ide-startup-lite/#https://github.com/opensumi/core/tree/v2.16.0"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"quick-start","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#quick-start","ariaLabel":"quick start permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Quick Start"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Clone "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/ide-startup-lite"}]},{"type":"text","value":",go to the directory and execute the following command to start the IDE:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"shell"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-shell"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-shell"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone https://github.com/opensumi/ide-startup-lite.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup-lite\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":"                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# to install dependency"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" run compile:ext-worker   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# to compile webworker environment"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" run start                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# to start"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" in your browser for preview or development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://gw.alipayobjects.com/mdn/rms_3b03a3/afts/img/A*ZXeHTJFmx3AAAAAAAAAAAAAAARQnAQ","alt":"screenshot"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A fully feasible and pure frontend IDE requires the following implementations:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"File Service Configuration *(mandatory)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Extension Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Language Competence Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Search service Configuration"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"file-service-configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-service-configuration","ariaLabel":"file service configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Service Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The pure frontend version uses "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserFsProvider"}]},{"type":"text","value":" to replace "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DiskFileSystemProvider"}]},{"type":"text","value":" in OpenSumi. The difference is that the original local file service is changed into an http interface service."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/file-provider/browser-fs-provider.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-services","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-services","ariaLabel":"file services permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Services"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Different from full-featured IDEs of container and electron versions, pure frontend version of IDEs generally serves for a vertical and specific scenario, such as code viewing and codereview. The corresponding underlying capabilities are service-oriented. And since the browser itself does not have a file system, it needs an external data source to provide and maintain the file information. In pure frontend version, we need developers to implement the following two methods to support the underlying code viewing capabilities:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/file-provider/http-file-service.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"readDir(uri: Uri): Promise>"}]},{"type":"text","value":":return directory structure information"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"readFile(uri: Uri, encoding?: string): Promise"}]},{"type":"text","value":":return file contents"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To implement preceding two methods enables IDE capabilities in read-only mode. If you want to support code editing feature, you also need to implement the following three methods:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"updateFile(uri: Uri, content: string, options: { encoding?: string; newUri?: Uri; }): Promise"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createFile(uri: Uri, content: string, options: { encoding?: string; }): Promise"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"deleteFile(uri: Uri, options: { recursive?: boolean }): Promise"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After the code is modified, the corresponding method will be called to synchronize to the server end of the integration side. After that, the browser side will cache a new code in memory, and invalid it after refreshing."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-declaration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-declaration","ariaLabel":"extension declaration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Declaration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Because there is no file system in the pure frontend environment, the list of installed extensions and their corresponding details cannot be obtained through the logic of extension scanning, which needs to be declared in advance at integration time."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When pure frontend extensions are added to the extension marketplace, a copy of the required resources will be automatically synchronized to oss (you need to enable the configuration"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{ “enableOpenSumiWebAssets”: true }"}]},{"type":"text","value":", after that when building extensions, it will automatically generate the directory list file, sumi-meta.json, which needs to be hosted). Therefore, to employ extensions uploaded to the extension marketplace in an intranet environment, you only need to declare the target extension's id and version in the extension list, and the rest of the logic has been smoothed out:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/extension/index.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" extensionList "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘OpenSumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"vsicons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"slim’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘"},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.0"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":".4"}]},{"type":"text","value":"’ "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘tao"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"o2"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"cr"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"theme’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘"},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"2.6"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":".3"}]},{"type":"text","value":"’ "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘alex"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"typescript"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"language"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"features"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"worker’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ‘"},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.0"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":".0"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"beta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"2"}]},{"type":"text","value":"’ "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For external users, you can upload some resources generated by extension packaging to the OSS or CDN, and then modify the oss base path in the extension market to a customized path."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"syntax-highlighting-and-code-hints","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#syntax-highlighting-and-code-hints","ariaLabel":"syntax highlighting and code hints permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Syntax Highlighting and Code Hints"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"syntax-highlighting","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#syntax-highlighting","ariaLabel":"syntax highlighting permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Syntax Highlighting"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For performance reasons, the static syntax highlighting capability of the pure frontend version is not registered through extensions by default. We have encapsulated common syntax into a unified NPM package and declared the syntax we want to support directly:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/grammar/index.contribution.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" languages "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  ‘html’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘css’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘javascript’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘less’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘markdown’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘typescript’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Note: We provide both direct Require and dynamic import to introduce syntax declaration files. The former will make bundleSize larger, while the latter deployment costs will be higher. You may take your chooice when integration."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"single-file-syntax-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#single-file-syntax-service","ariaLabel":"single file syntax service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Single File Syntax Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is based on pure frontend extension (Worker version) capabilities, providing basic hints of common syntax. Due to no file service, the worker version syntax prompt that extensions only support single-file code hints and do not support cross-file analysis, which is basically sufficient for pure frontend lightweight editing scenarios. The following is the Syntax hint extensions currently available:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" languageExtensions "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.typescript-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.2'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.markdown-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.2'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.html-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.json-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.css-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Add the syntax prompt extension directly to the extension list."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"lsif-syntax-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#lsif-syntax-service","ariaLabel":"lsif syntax service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Lsif Syntax Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For pure browsing scenarios such as code viewing and Code review, the "},{"type":"element","tagName":"a","properties":{"href":"https://microsoft.github.io/language-server-protocol/specifications/lsif/0.6.0/specification/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"LSIF Scheme"}]},{"type":"text","value":" based on offline indexing analysis will support cross-file Hover hints and code skipping without any additional analysis overhead on the browser side. OpenSumi pure frontend version integrated with lsif client, and just need a simple docking to access lsif service."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"File Location:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/language-service/lsif-service/lsif-client.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ILsifPayload"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  repository"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  commit"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  path"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  character"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  line"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ILsifClient"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"exists"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"repo"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" commit"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hover"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Hover"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"definition"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Location"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"reference"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Location"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"search-capability","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#search-capability","ariaLabel":"search capability permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Search Capability"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The search function is optional and is not enabled by default. The core search capability lies in the implementation of file-search and the backend part of the search module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-search","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-search","ariaLabel":"file search permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To make the file search function (triggered by cmd+p) possible, you need to implement following method:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IFileSearchService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * finds files by a given search pattern.\n   * @return the matching paths, relative to the given `options.rootUri`.\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"find"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    searchPattern"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IFileSearchService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    cancellationToken"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CancellationToken\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Replace the default mock-file-seach.ts after implementation."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-content-search","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-content-search","ariaLabel":"file content search permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Content Search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The implementation of the file content search function requires modification of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search.service.ts"}]},{"type":"text","value":", and the official implementation is not available at this time."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)"},"parent":{"relativePath":"integrate/quick-start/lite.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/quick-start/web/page-data.json b/page-data/en/docs/integrate/quick-start/web/page-data.json
        index 7e37ff8b..02392430 100644
        --- a/page-data/en/docs/integrate/quick-start/web/page-data.json
        +++ b/page-data/en/docs/integrate/quick-start/web/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/quick-start/web","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is based on Node.js version "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"12.x +"}]},{"type":"text","value":" and you need to make sure the correct version of Node.js installed locally. Also, OpenSumi relies on a number of Node.js Addons. To ensure these Addons are compiled properly, we recommend you to refer to the installation guide in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" to set up your local environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01uIRRRl1wmLkN9geV3_!!6000000006350-2-tps-2844-1830.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"local-launch","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#local-launch","ariaLabel":"local launch permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Local Launch"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Note: Because a large number of packages need to be downloaded during the compiling process, and some of them require the access to GitHub to download the source code, so please keep your access to GitHub open. Many 404 Not Found issues are caused by network access failures."}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run the following commands in sequence:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-startup.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\t\t\t\t\t   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# install dependency"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# start the front end and back end in parallel"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open the browser "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" for preview or development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-docker-image","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-docker-image","ariaLabel":"use docker image permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Docker Image"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# pull the image  "}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"docker"}]},{"type":"text","value":" pull ghcr.io/opensumi/opensumi-web:latest\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# run"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"docker"}]},{"type":"text","value":" run "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--rm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-d"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-p"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8080"}]},{"type":"text","value":":8000/tcp ghcr.io/opensumi/opensumi-web:latest"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open the browser "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":"for preview or development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"start-the-parameters","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#start-the-parameters","ariaLabel":"start the parameters permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Start the Parameters"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The integration code in Startup is relatively simple. Basically it creates an instance of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ServerApp"}]},{"type":"text","value":" respectively, introduces appropriate parameters and starts them. For detailed startup parameters, please see "},{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"integrated configuration"}]},{"type":"text","value":" document."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"customize-ide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#customize-ide","ariaLabel":"customize ide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Customize IDE"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi helps customize basic capabilities including interface themes, built-in commands and menus by means of modules. You can view more detailed customization content at:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"Integration configuration"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-command"},"children":[{"type":"text","value":"Customize Comand"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"Customize Config"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-view"},"children":[{"type":"text","value":"Customize view"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)"},"parent":{"relativePath":"integrate/quick-start/web.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/quick-start/web","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi is based on Node.js version "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"12.x +"}]},{"type":"text","value":" and you need to make sure the correct version of Node.js installed locally. Also, OpenSumi relies on a number of Node.js Addons. To ensure these Addons are compiled properly, we recommend you to refer to the installation guide in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" to set up your local environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01uIRRRl1wmLkN9geV3_!!6000000006350-2-tps-2844-1830.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"local-launch","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#local-launch","ariaLabel":"local launch permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Local Launch"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Note: Because a large number of packages need to be downloaded during the compiling process, and some of them require the access to GitHub to download the source code, so please keep your access to GitHub open. Many 404 Not Found issues are caused by network access failures."}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Run the following commands in sequence:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-startup.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\t\t\t\t\t   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# install dependency"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# start the front end and back end in parallel"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open the browser "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" for preview or development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"use-docker-image","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#use-docker-image","ariaLabel":"use docker image permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Use Docker Image"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# pull the image  "}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"docker"}]},{"type":"text","value":" pull ghcr.io/opensumi/opensumi-web:latest\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# run"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"docker"}]},{"type":"text","value":" run "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--rm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-d"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-p"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8080"}]},{"type":"text","value":":8000/tcp ghcr.io/opensumi/opensumi-web:latest"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Open the browser "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":"for preview or development."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"start-the-parameters","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#start-the-parameters","ariaLabel":"start the parameters permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Start the Parameters"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The integration code in Startup is relatively simple. Basically it creates an instance of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ServerApp"}]},{"type":"text","value":" respectively, introduces appropriate parameters and starts them. For detailed startup parameters, please see "},{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"integrated configuration"}]},{"type":"text","value":" document."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"customize-ide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#customize-ide","ariaLabel":"customize ide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Customize IDE"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi helps customize basic capabilities including interface themes, built-in commands and menus by means of modules. You can view more detailed customization content at:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"Integration configuration"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-command"},"children":[{"type":"text","value":"Customize Comand"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"Customize Config"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-view"},"children":[{"type":"text","value":"Customize view"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)"},"parent":{"relativePath":"integrate/quick-start/web.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/custom-command/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/custom-command/page-data.json
        index a99e2530..a5b9b3fd 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/custom-command/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/custom-command/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-command","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The two main scenarios to employ comand are as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension","ariaLabel":"extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi commands can be used in the extension by the following example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Uri "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// OpenSumi deals with the command call of plug-in process specifically, which converts `Uri` to `URI` in real execution"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" uri "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"file"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/some/path/to/folder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" success "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module","ariaLabel":"module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following example shows how to use OpenSumi commands in the module:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/common-di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" commandService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" uri "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/some/path/to/folder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"react-component","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#react-component","ariaLabel":"react component permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"React Component"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"in React component, you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" function to get the command service:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" useInjectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"DemoView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" commandService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"openFolder"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    commandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"OPEN_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" newWindow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"className"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"empty_button"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"openFolder"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'file.empty.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"built-in-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#built-in-command","ariaLabel":"built in command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Built-in Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the OpenSumi framework, many basic commands are built-in. When you need to implement them, you can go to the module to find the corresponding implementation first to avoid repetitive work. the following table lists some frequently used built-in commands."}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Command"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Functionality"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"parameter"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"revealInExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Locate the file on the Explorer page"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set the Context variable value"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"key"}]},{"type":"text","value":":键, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"value"}]},{"type":"text","value":":值"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close this active editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.revertAndCloseActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Restore this file contents while closing active editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Split this editor right"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Split this editor down"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.newUntitledFile"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Creat temporary editor file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeAllEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close all editors"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeOtherEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close Other editors"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.save"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Save this file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the file and split to the right"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorOrthogonal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the file and split  down"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateLeft"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the left editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateUp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the top editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the right editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the bottom editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateEditorGroups"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch editor groups"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.nextEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the next file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.previousEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the previous file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openEditorAtIndex"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the editor by subscript position"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.revert"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Restores the contents of the current active file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.clear"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Clear the contents of the currently active terminal window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.toggleTerminal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open/close the terminal window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.files.action.focusFilesExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the active editor group"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.open"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file(only in Electron)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.openFolder"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file(only in Electron)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.reloadWindow (reload_window)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reload the Window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Copy files's absolute path to"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyRelativeFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Copy file relative path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openSettings"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the Settings panel"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateBack"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Navigate back to the previous editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateForward"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Navigate back to the forward editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.saveAll"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Save all files"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to step into"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOut"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to step out"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOver"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to step over"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.continue"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to continue"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.run (workbench.action.debug.start)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to run"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.pause"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to pause"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.restart"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to restart"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stop"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to stop"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.showAllSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Show all symbols"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"register-a-customized-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-a-customized-command","ariaLabel":"register a customized command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register a Customized Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are also two ways to register a custom command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-by-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-by-extensions","ariaLabel":"register by extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register by Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extension registration mainly relies on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"commands"}]},{"type":"text","value":" contribution points. For more details, please see"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.commands","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"contributes.commands"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following code illustrate a simple example of declaring a custom command in the extension's "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"contributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"commands\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"extension.sayHello\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello World\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"category\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"light\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"path/to/light/icon.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dark\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"path/to/dark/icon.svg\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The advantage of declaration is that the command is \"explicitly\" present in the frame, that is, it can be found in the Quick Navigation panel opened by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"⇧⌘P"}]},{"type":"text","value":" or in the menu, and commands registered directly without the declaration will not appear in the above panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumi's built-in extension API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ExtensionContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"subscriptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'extension.sayHello'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello World'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-by-modules","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-by-modules","ariaLabel":"register by modules permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register by Modules"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In module, we usually register by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":", which is detailed in the documentation "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point#%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%86%8C"},"children":[{"type":"text","value":"Command Register"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-command.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-command","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The two main scenarios to employ comand are as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension","ariaLabel":"extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi commands can be used in the extension by the following example:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Uri "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// OpenSumi deals with the command call of plug-in process specifically, which converts `Uri` to `URI` in real execution"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" uri "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"file"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/some/path/to/folder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" success "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#module","ariaLabel":"module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following example shows how to use OpenSumi commands in the module:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/common-di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" commandService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" uri "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/some/path/to/folder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"react-component","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#react-component","ariaLabel":"react component permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"React Component"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"in React component, you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" function to get the command service:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" useInjectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"DemoView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" commandService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"openFolder"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    commandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"OPEN_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" newWindow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"className"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"empty_button"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"openFolder"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'file.empty.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"built-in-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#built-in-command","ariaLabel":"built in command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Built-in Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the OpenSumi framework, many basic commands are built-in. When you need to implement them, you can go to the module to find the corresponding implementation first to avoid repetitive work. the following table lists some frequently used built-in commands."}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Command"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Functionality"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"parameter"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"revealInExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Locate the file on the Explorer page"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set the Context variable value"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"key"}]},{"type":"text","value":":键, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"value"}]},{"type":"text","value":":值"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close this active editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.revertAndCloseActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Restore this file contents while closing active editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Split this editor right"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Split this editor down"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.newUntitledFile"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Creat temporary editor file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeAllEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close all editors"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeOtherEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Close Other editors"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.save"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Save this file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the file and split to the right"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorOrthogonal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the file and split  down"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateLeft"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the left editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateUp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the top editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the right editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the bottom editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateEditorGroups"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch editor groups"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.nextEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the next file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.previousEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Switch to the previous file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openEditorAtIndex"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the editor by subscript position"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.revert"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Restores the contents of the current active file"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.clear"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Clear the contents of the currently active terminal window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.toggleTerminal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open/close the terminal window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.files.action.focusFilesExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the active editor group"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.open"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file(only in Electron)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.openFolder"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open file(only in Electron)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.reloadWindow (reload_window)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Reload the Window"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Copy files's absolute path to"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyRelativeFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Copy file relative path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openSettings"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Open the Settings panel"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateBack"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Navigate back to the previous editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateForward"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Navigate back to the forward editor"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.saveAll"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Save all files"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to step into"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOut"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to step out"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOver"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to step over"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.continue"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to continue"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.run (workbench.action.debug.start)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to run"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.pause"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to pause"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.restart"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to restart"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stop"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Debug to stop"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.showAllSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Show all symbols"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"register-a-customized-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-a-customized-command","ariaLabel":"register a customized command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register a Customized Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are also two ways to register a custom command:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-by-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-by-extensions","ariaLabel":"register by extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register by Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extension registration mainly relies on "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"commands"}]},{"type":"text","value":" contribution points. For more details, please see"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.commands","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"contributes.commands"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following code illustrate a simple example of declaring a custom command in the extension's "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"contributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"commands\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"extension.sayHello\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello World\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"category\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"light\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"path/to/light/icon.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dark\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"path/to/dark/icon.svg\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The advantage of declaration is that the command is \"explicitly\" present in the frame, that is, it can be found in the Quick Navigation panel opened by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"⇧⌘P"}]},{"type":"text","value":" or in the menu, and commands registered directly without the declaration will not appear in the above panel."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumi's built-in extension API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ExtensionContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"subscriptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'extension.sayHello'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello World'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-by-modules","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-by-modules","ariaLabel":"register by modules permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register by Modules"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In module, we usually register by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":", which is detailed in the documentation "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point#%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%86%8C"},"children":[{"type":"text","value":"Command Register"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-command.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/custom-config/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/custom-config/page-data.json
        index e3d35de6..dbd1474d 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/custom-config/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/custom-config/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-config","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"register-custom-preferences","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-custom-preferences","ariaLabel":"register custom preferences permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register Custom Preferences"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are two main ways to register frequently-used customized configurations:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register on the integration side by using module contribution points."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Configurations"}]},{"type":"text","value":" contribution points of extensions."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides custom configuration capabilities based on OpenSumi's "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution Point"}]},{"type":"text","value":" mechanism. You only need to implement "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" to register the configuration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, we can register the runtime configuration in the project by creating a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" with the following pseudo code:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" DemoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    testValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" DemoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By introducing the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" into the Providers declaration in the module, it can be used in other modules in the following way:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'testValue'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Another way to register is to use extensions "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.configuration","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"configuration Contribution points"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"customize-integration-parameters","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#customize-integration-parameters","ariaLabel":"customize integration parameters permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Customize Integration Parameters"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When integrating OpenSumi framework, we often need to perform independent configurations, and the following table lists some parameters that can be configured during the integration phase by passing in configuration items."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Electron IDE Sample"}]},{"type":"text","value":", you can find the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"text","value":" initialization method in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/blob/main/src/browser/index.ts#L113","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L113"}]},{"type":"text","value":" and add the following:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// add your configuration"}]},{"type":"text","value":"\n  appName"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Also you can find the same configuration logic on "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebIDE Sample"}]},{"type":"text","value":", see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/main/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L12"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The complete configuration file can be found in the live code "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-configuration","ariaLabel":"browser configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The definition can be found in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" definition in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"parameter"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Parameter instruction"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"default value"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"appName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"A unique name for a client, usually represent when the client starts up, and also show as the client name output by the extension process"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"OpenSumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uriScheme"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Mainly used to register the client protocol in Electron version to promote protocol"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Workspace path, usually a folder or a workspace file of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"*.sumi-workspace"}]},{"type":"text","value":". When the value passed is empty, the file tree on the left side of the editor will show the button to open the folder."}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"didRendered"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Call after the DOM has been rendered for the first time. This means that the IDE interface has been rendered and is ready for operation, you can pass in a function here to handle the interface Loading, see "},{"type":"element","tagName":"a","properties":{"href":"https://yuque.antfin.com/ide-framework/integration/features#Zs82P","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"DidRendered"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Extension directory path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionCandidate"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"An additional specified extension path, typically for built-in extensions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"storageDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set the folder name for global storage, mainly for the folder name configuration when using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Storage"}]},{"type":"text","value":" module related storage service"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"preferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set the folder name for the workspace profile. For integrated environments, we recommend using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"text","value":" for more fine-grained configuration storage folder name Preference"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"A more fine-grained project workspace configuration storage location,that is, when preferenceDirName = '.sumi' , workspacePreferenceDirName = '.kt',the corresponding global configuration is ~/.sumi/settings.json , the workspace configuration is {workspaceDir}/.kt/settings.json"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"A more fine-grained project workspace configuration storage location, that is, when preferenceDirName = '.sumi' , userPreferenceDirName = '.kt', the corresponding global configuration is ~/.sumi/settings.json , and the workspace configuration is {userDir}/.kt/settings.json"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionStorageDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Global extension data storage directory name, .sumi by default, data stored at {userDir}/.sumi"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"defaultPreferences"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Initial definition of the client overall configurations, and common customizable parameters includes color theme: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.theme"}]},{"type":"text","value":", icon theme: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.icon"}]},{"type":"text","value":", language: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.language"}]},{"type":"text","value":", exclude file option: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"filesExclude"}]},{"type":"text","value":" and exclude file listener option: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"watchExclude"}]},{"type":"text","value":", which theoretically allows you to set default values for all configurations defined in the IDE"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"injector"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Initialized DI instances, which can be passed in generally after the external DI initialization to facilitate the initialization of some dependencies in advance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"wsPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Default WebScoket communication path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"layoutConfig"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the default loaded modules in each layout block of the IDE, which can add, remove or change target modules."}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/main-layout/src/browser/default-config.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"default-config.tsx"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"layoutConponent"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the overall layout of the IDE. You can pass in a custom layout to define the default options, such as size of each block and scaling"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-browser/src/components/layout/default-layout.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"default-layout.tsx"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"panelSizes"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Panel size, width/height can be defined on the basis of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layoutComponent"}]},{"type":"text","value":" configuration"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"defaultPanels"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the default panel for each block, for example: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"defaultPanels: { [SlotLocation.bottom]: '@opensumi/ide-terminal-next' }"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"webviewEndpoint"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"The iframe address used to mount the webview"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://${deviceIp}:${port}/webview"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extWorkerHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Default startup path of the Worker extension"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://dev.g.alicdn.com/tao-ide/ide-lite/$%7Bversion%7D/worker-host.js","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://dev.g.alicdn.com/tao-ide/ide-lite/${version}/worker-host.js"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticServicePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the static resource path. The default load path within the framework is"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8000/assets/${path}"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1:8000/assets/$%7Bpath%7D","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1:8000/assets/${path}"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionDevelopmentHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Defines whether to start in extension development mode"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"editorBackgroundImage"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the background image of the editor interface"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"useExperimentalShadowDom"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define whether ShadowDom mode is enabled in the extensiom environment. It is recommended to turn it on. After enabling ShadowDom mode, the view extension style will be isolated from the global environment"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"useIframeWrapWorkerHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Use iframe wrap when loading workerHost. For cross-domain scenarios, the workerHost will be loaded, use base64 encoding, and will be introduced by using importScripts (importScripts are not subject to cross-domain restrictions), but this will make the origin of the workerHost be null, leaving some requests fail"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"clientId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Customize client ID, which is the unique identifier of the websocket service and the unique identifier passed to the backend Service that declares backServices. Be careful to keep this ID unique"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"noExtHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Whether to disable the extension process"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extraContextProvider"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Extra ConfigProvider that when the ReactDOM.render call within OpenSumi, it will be wrapped by a layer of extraContextProvider for additional Context transferring effects"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"allowSetDocumentTitleFollowWorkspaceDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Allow dynamic setting of document#title by workspace path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"true"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"remoteHostname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Remote access address through which you can access container services"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"window.location.hostname"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"enableDebugExtensionHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Enable the debugging capability of the extension process"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionFetchCredentials"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Fetch credentials option when loading extension frontend resources, optionally \"include\""}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"\"omit\""}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionConnectOption"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"reference:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-common/src/types/extension.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ExtensionConnectOption"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-configuration","ariaLabel":"node configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The definition can be found in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" definition in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Parameters"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Parameter Instructions"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Default Value"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Injector"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"The initialized DI instance can be passed in after DI initialized externally to facilitate dependency initialization in advance"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"marketplace"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-node/src/bootstrap/app.ts#L28","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MarketplaceConfig"}]}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"logLevel"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set log placement level. The default is Info level log level"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"LogLevel.Info"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"logDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the log placement path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"~/.sumi/logs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"LogServiceClass"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ILogService to be deprecated, set externally, replacing the default logService, which can be done by initializing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ILogService"}]},{"type":"text","value":" on the passed "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"injector"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"maxExtProcessCount"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the maximum number of extension processes enabled"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extLogServiceClassPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define a custom implementation path for extension logging"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"processCloseExitThreshold"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define extension process shutdown time"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"terminalPtyCloseThreshold"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define terminal pty process exit time"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticAllowOrigin"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Access origin allowed by static resources"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticAllowPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Allowed path for accessing static resources. Used to configure the whitelist rule for static resources"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"blockPatterns"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Paths to which access is disabled by the file service, using glob to match"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Node extension process entry file"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHostIPCSockPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"The extension process that stores the sock address for communication"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"/tmp"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHostForkOptions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Extension process fork configuration"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more configurations, please see the OpenSumi source code."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-config.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-config","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"register-custom-preferences","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-custom-preferences","ariaLabel":"register custom preferences permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register Custom Preferences"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are two main ways to register frequently-used customized configurations:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register on the integration side by using module contribution points."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register by using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Configurations"}]},{"type":"text","value":" contribution points of extensions."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides custom configuration capabilities based on OpenSumi's "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution Point"}]},{"type":"text","value":" mechanism. You only need to implement "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" to register the configuration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, we can register the runtime configuration in the project by creating a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" with the following pseudo code:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" DemoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    testValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" DemoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"By introducing the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" into the Providers declaration in the module, it can be used in other modules in the following way:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'testValue'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Another way to register is to use extensions "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.configuration","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"configuration Contribution points"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"customize-integration-parameters","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#customize-integration-parameters","ariaLabel":"customize integration parameters permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Customize Integration Parameters"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When integrating OpenSumi framework, we often need to perform independent configurations, and the following table lists some parameters that can be configured during the integration phase by passing in configuration items."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Electron IDE Sample"}]},{"type":"text","value":", you can find the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"text","value":" initialization method in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/blob/main/src/browser/index.ts#L113","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L113"}]},{"type":"text","value":" and add the following:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// add your configuration"}]},{"type":"text","value":"\n  appName"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Also you can find the same configuration logic on "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebIDE Sample"}]},{"type":"text","value":", see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/main/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L12"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The complete configuration file can be found in the live code "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-configuration","ariaLabel":"browser configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The definition can be found in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" definition in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"parameter"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Parameter instruction"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"default value"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"appName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"A unique name for a client, usually represent when the client starts up, and also show as the client name output by the extension process"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"OpenSumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uriScheme"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Mainly used to register the client protocol in Electron version to promote protocol"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Workspace path, usually a folder or a workspace file of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"*.sumi-workspace"}]},{"type":"text","value":". When the value passed is empty, the file tree on the left side of the editor will show the button to open the folder."}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"didRendered"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Call after the DOM has been rendered for the first time. This means that the IDE interface has been rendered and is ready for operation, you can pass in a function here to handle the interface Loading, see "},{"type":"element","tagName":"a","properties":{"href":"https://yuque.antfin.com/ide-framework/integration/features#Zs82P","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"DidRendered"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Extension directory path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionCandidate"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"An additional specified extension path, typically for built-in extensions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"storageDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set the folder name for global storage, mainly for the folder name configuration when using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Storage"}]},{"type":"text","value":" module related storage service"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"preferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set the folder name for the workspace profile. For integrated environments, we recommend using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"text","value":" for more fine-grained configuration storage folder name Preference"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"A more fine-grained project workspace configuration storage location,that is, when preferenceDirName = '.sumi' , workspacePreferenceDirName = '.kt',the corresponding global configuration is ~/.sumi/settings.json , the workspace configuration is {workspaceDir}/.kt/settings.json"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"A more fine-grained project workspace configuration storage location, that is, when preferenceDirName = '.sumi' , userPreferenceDirName = '.kt', the corresponding global configuration is ~/.sumi/settings.json , and the workspace configuration is {userDir}/.kt/settings.json"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionStorageDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Global extension data storage directory name, .sumi by default, data stored at {userDir}/.sumi"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"defaultPreferences"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Initial definition of the client overall configurations, and common customizable parameters includes color theme: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.theme"}]},{"type":"text","value":", icon theme: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.icon"}]},{"type":"text","value":", language: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.language"}]},{"type":"text","value":", exclude file option: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"filesExclude"}]},{"type":"text","value":" and exclude file listener option: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"watchExclude"}]},{"type":"text","value":", which theoretically allows you to set default values for all configurations defined in the IDE"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"injector"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Initialized DI instances, which can be passed in generally after the external DI initialization to facilitate the initialization of some dependencies in advance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"wsPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Default WebScoket communication path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"layoutConfig"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the default loaded modules in each layout block of the IDE, which can add, remove or change target modules."}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/main-layout/src/browser/default-config.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"default-config.tsx"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"layoutConponent"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the overall layout of the IDE. You can pass in a custom layout to define the default options, such as size of each block and scaling"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-browser/src/components/layout/default-layout.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"default-layout.tsx"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"panelSizes"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Panel size, width/height can be defined on the basis of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layoutComponent"}]},{"type":"text","value":" configuration"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"defaultPanels"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the default panel for each block, for example: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"defaultPanels: { [SlotLocation.bottom]: '@opensumi/ide-terminal-next' }"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"webviewEndpoint"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"The iframe address used to mount the webview"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://${deviceIp}:${port}/webview"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extWorkerHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Default startup path of the Worker extension"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://dev.g.alicdn.com/tao-ide/ide-lite/$%7Bversion%7D/worker-host.js","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://dev.g.alicdn.com/tao-ide/ide-lite/${version}/worker-host.js"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticServicePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the static resource path. The default load path within the framework is"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8000/assets/${path}"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1:8000/assets/$%7Bpath%7D","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1:8000/assets/${path}"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionDevelopmentHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Defines whether to start in extension development mode"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"editorBackgroundImage"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the background image of the editor interface"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"useExperimentalShadowDom"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define whether ShadowDom mode is enabled in the extensiom environment. It is recommended to turn it on. After enabling ShadowDom mode, the view extension style will be isolated from the global environment"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"useIframeWrapWorkerHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Use iframe wrap when loading workerHost. For cross-domain scenarios, the workerHost will be loaded, use base64 encoding, and will be introduced by using importScripts (importScripts are not subject to cross-domain restrictions), but this will make the origin of the workerHost be null, leaving some requests fail"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"clientId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Customize client ID, which is the unique identifier of the websocket service and the unique identifier passed to the backend Service that declares backServices. Be careful to keep this ID unique"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"noExtHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Whether to disable the extension process"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extraContextProvider"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Extra ConfigProvider that when the ReactDOM.render call within OpenSumi, it will be wrapped by a layer of extraContextProvider for additional Context transferring effects"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"allowSetDocumentTitleFollowWorkspaceDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Allow dynamic setting of document#title by workspace path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"true"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"remoteHostname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Remote access address through which you can access container services"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"window.location.hostname"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"enableDebugExtensionHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Enable the debugging capability of the extension process"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionFetchCredentials"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Fetch credentials option when loading extension frontend resources, optionally \"include\""}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"\"omit\""}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionConnectOption"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"reference:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-common/src/types/extension.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ExtensionConnectOption"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-configuration","ariaLabel":"node configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The definition can be found in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" definition in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Parameters"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Parameter Instructions"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Default Value"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Injector"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"The initialized DI instance can be passed in after DI initialized externally to facilitate dependency initialization in advance"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"marketplace"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-node/src/bootstrap/app.ts#L28","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MarketplaceConfig"}]}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"logLevel"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Set log placement level. The default is Info level log level"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"LogLevel.Info"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"logDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the log placement path"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"~/.sumi/logs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"LogServiceClass"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ILogService to be deprecated, set externally, replacing the default logService, which can be done by initializing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ILogService"}]},{"type":"text","value":" on the passed "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"injector"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"maxExtProcessCount"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define the maximum number of extension processes enabled"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extLogServiceClassPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define a custom implementation path for extension logging"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"processCloseExitThreshold"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define extension process shutdown time"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"terminalPtyCloseThreshold"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Define terminal pty process exit time"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticAllowOrigin"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Access origin allowed by static resources"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticAllowPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Allowed path for accessing static resources. Used to configure the whitelist rule for static resources"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"blockPatterns"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Paths to which access is disabled by the file service, using glob to match"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Node extension process entry file"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHostIPCSockPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"The extension process that stores the sock address for communication"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"/tmp"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHostForkOptions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Extension process fork configuration"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Null"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For more configurations, please see the OpenSumi source code."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-config.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/custom-keybinding/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/custom-keybinding/page-data.json
        index fcf204f2..58d18275 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/custom-keybinding/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/custom-keybinding/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-keybinding","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As a rich-interactive IDE, a favourable keybinding design can largely free users from relying on interface operations and improve the work/operation efficiency. Apart from supporting extensions registration by extensions under the OpenSumi framework, it also supports to register expansion by modules. This section focuses on how to preset more keybindings for your application in the integration phase."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"keybinding-registration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#keybinding-registration","ariaLabel":"keybinding registration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Keybinding Registration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the module, we usually employ "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" approach to register,which are detailed in "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point#%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%B3%A8%E5%86%8C"},"children":[{"type":"text","value":"Keybinding Registration"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"favorable-keybinding-characters","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#favorable-keybinding-characters","ariaLabel":"favorable keybinding characters permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Favorable keybinding Characters"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following modifiers are supported under specific platforms:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"platform"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"modifier"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"macOS"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Cmd+"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Windows"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Win+"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Linux"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Meta+"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Meanwhile, you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ctrlcmd"}]},{"type":"text","value":" as a modifier in keybinding registration. This modifier will be identified as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Cmd"}]},{"type":"text","value":" in macOS and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl"}]},{"type":"text","value":" in Linux and Windows."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Some of the remaining supported key values are as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"f1-f19"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"a-z"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"0-9"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"-"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"="},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"["},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":", "}]},{"type":"text","value":"]"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"`, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"."},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"/`"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"left"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"up"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"right"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"down"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pageup"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pagedown"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"end"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"home"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tab"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"enter"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"escape"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"space"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"backspace"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"delete"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pausebreak"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"capslock"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"insert"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad0-numpad9"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_multiply"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_add"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_separator"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_subtract"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_decimal"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_divide"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"control-the-effective-scope-by-when","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#control-the-effective-scope-by-when","ariaLabel":"control the effective scope by when permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Control the Effective Scope by \"when\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In general, when we register a keybinding, we only expect the keybinding to take effect in a specific area. Generally we recommend using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" logic for control. There are partial "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" expressions defined in the OpenSumi framework, and in most cases you can use them directly, see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/f3fd01381d6ee854102d491b14957e9e634941a3/packages/core-browser/src/contextkey/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"contextkey/index.ts"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You only need to add the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" field when registering a keybinding, so that the keybinding will only be responded when "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" is in effect, which can effectively avoid keybinding conflicts in your IDE, as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'type'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'enter'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  when"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'editorTextFocus'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also customize or register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" expressions, as described in the simple example: "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/f3fd01381d6ee854102d491b14957e9e634941a3/packages/overlay/src/browser/dialog.contextkey.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"dialog.contextkey.ts"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"From then on, you can customize the function keybindings by integrating customized modules."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-keybinding.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-keybinding","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As a rich-interactive IDE, a favourable keybinding design can largely free users from relying on interface operations and improve the work/operation efficiency. Apart from supporting extensions registration by extensions under the OpenSumi framework, it also supports to register expansion by modules. This section focuses on how to preset more keybindings for your application in the integration phase."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"keybinding-registration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#keybinding-registration","ariaLabel":"keybinding registration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Keybinding Registration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In the module, we usually employ "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" approach to register,which are detailed in "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point#%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%B3%A8%E5%86%8C"},"children":[{"type":"text","value":"Keybinding Registration"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"favorable-keybinding-characters","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#favorable-keybinding-characters","ariaLabel":"favorable keybinding characters permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Favorable keybinding Characters"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following modifiers are supported under specific platforms:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"platform"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"modifier"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"macOS"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Cmd+"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Windows"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Win+"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Linux"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Meta+"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Meanwhile, you can use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ctrlcmd"}]},{"type":"text","value":" as a modifier in keybinding registration. This modifier will be identified as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Cmd"}]},{"type":"text","value":" in macOS and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl"}]},{"type":"text","value":" in Linux and Windows."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Some of the remaining supported key values are as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"f1-f19"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"a-z"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"0-9"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"-"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"="},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"["},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":", "}]},{"type":"text","value":"]"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"`, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"."},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"/`"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"left"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"up"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"right"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"down"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pageup"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pagedown"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"end"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"home"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tab"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"enter"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"escape"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"space"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"backspace"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"delete"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pausebreak"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"capslock"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"insert"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad0-numpad9"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_multiply"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_add"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_separator"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_subtract"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_decimal"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_divide"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"control-the-effective-scope-by-when","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#control-the-effective-scope-by-when","ariaLabel":"control the effective scope by when permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Control the Effective Scope by \"when\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In general, when we register a keybinding, we only expect the keybinding to take effect in a specific area. Generally we recommend using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" logic for control. There are partial "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" expressions defined in the OpenSumi framework, and in most cases you can use them directly, see "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/f3fd01381d6ee854102d491b14957e9e634941a3/packages/core-browser/src/contextkey/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"contextkey/index.ts"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You only need to add the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" field when registering a keybinding, so that the keybinding will only be responded when "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" is in effect, which can effectively avoid keybinding conflicts in your IDE, as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'type'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'enter'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  when"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'editorTextFocus'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can also customize or register "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" expressions, as described in the simple example: "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/f3fd01381d6ee854102d491b14957e9e634941a3/packages/overlay/src/browser/dialog.contextkey.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"dialog.contextkey.ts"}]},{"type":"text","value":" ."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"From then on, you can customize the function keybindings by integrating customized modules."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-keybinding.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint/page-data.json
        index eb74258e..d42c0dd0 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi support both "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.opentrs.cn/square","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Ant CloudIDE Marketplace"}]},{"type":"text","value":" and "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":", and can be switched between each other through configuration. At present, the default is the Ant CloudIDE extension marketplace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#configuration","ariaLabel":"configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Generally, the initial project of the framework will use the configuration of the mirror site in two places, one is the download script to install the default extensions, and the other is the extension marketplace configuration when the framework is started."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-to-modify-the-download-script","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-modify-the-download-script","ariaLabel":"how to modify the download script permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to modify the download script"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The download script ("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scripts/download.js"}]},{"type":"text","value":") uses the Ant CloudIDE extension marketplace by default. If you need to switch, you can specify the extension marketplace type in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"download-extension"}]},{"type":"text","value":" directive in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" file:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    -"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"download-extension\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"cross-env DEBUG=InstallExtension node scripts/download.js\""}]},{"type":"text","value":"\n    +"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"download-extension\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"cross-env DEBUG=InstallExtension MARKETPLACE=openvsx node scripts/download.js\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-to-modify-the-plugin-market-source","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-modify-the-plugin-market-source","ariaLabel":"how to modify the plugin market source permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to modify the plugin market source"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can refer to the code here: [node/start-server.ts#L18]("},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/example/src/node/start-server.ts#","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/opensumi-module-samples/blob/main/example/src/node/start-server.ts#"}]},{"type":"text","value":" L18), add relevant parameter information in the configuration parameters of the Node process startup. The specific configuration is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"ant-cloudide-marketplace","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ant-cloudide-marketplace","ariaLabel":"ant cloudide marketplace permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Ant CloudIDE Marketplace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" opts"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IServerAppOpts "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  marketplace"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    endpoint"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://marketplace.opentrs.cn'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    accountId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clcJKq_Gea47whxAJGrgoYqf'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    masterKey"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'_V_LPJ6Ar-1nrSVa05xDGBYp'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"                 "}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"accountId"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"masterKey"}]},{"type":"text","value":" used in the above configuration are the public secret key provided by the Ant CloudIDE Marketplace. This secret key can access all public extensions in the marketplace by default. If you need to customize the secret key, you can refer to the client management section in the "},{"type":"element","tagName":"a","properties":{"href":"https://www.opentrs.cn/cloudide/documents/documentDetail?productStr=cloudide-20221026&nameSpace=trms2d/xyyfdt&slug=ooxr2vxp32r9hv4q","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Ant CloudIDE Marketplace documentation"}]},{"type":"text","value":". Through the custom secret key, you can access your private extensions hosted in the marketplace."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"eclipse-open-vsx","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#eclipse-open-vsx","ariaLabel":"eclipse open vsx permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" opts"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IServerAppOpts "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  marketplace"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    endpoint"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://open-vsx.org/api'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Official Registry"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// endpoint: 'https://marketplace.smartide.cn/api', // China Mirror"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you encounter the problem that the extension marketplace cannot be accessed normally, please switch the entrypoint of the extension marketplace in time to solve the problem."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-synchronization-mechanism","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-synchronization-mechanism","ariaLabel":"extension synchronization mechanism permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Synchronization Mechanism"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At present, OpenSumi has a certain lag (about three months) in compatibility with the VSCode extension API. Therefore, the VSCode extension hosted in the marketplace must first scan the code before synchronizing. If you find that the extension you want is missing, you can put forward the extension synchronization requirement in the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Issues"}]},{"type":"text","value":" issues list, and the project team members will scan the extension and synchronize the available version."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-marketplace-entrypoint.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi support both "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.opentrs.cn/square","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Ant CloudIDE Marketplace"}]},{"type":"text","value":" and "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":", and can be switched between each other through configuration. At present, the default is the Ant CloudIDE extension marketplace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"configuration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#configuration","ariaLabel":"configuration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Configuration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Generally, the initial project of the framework will use the configuration of the mirror site in two places, one is the download script to install the default extensions, and the other is the extension marketplace configuration when the framework is started."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-to-modify-the-download-script","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-modify-the-download-script","ariaLabel":"how to modify the download script permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to modify the download script"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The download script ("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scripts/download.js"}]},{"type":"text","value":") uses the Ant CloudIDE extension marketplace by default. If you need to switch, you can specify the extension marketplace type in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"download-extension"}]},{"type":"text","value":" directive in the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" file:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    -"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"download-extension\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"cross-env DEBUG=InstallExtension node scripts/download.js\""}]},{"type":"text","value":"\n    +"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"download-extension\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"cross-env DEBUG=InstallExtension MARKETPLACE=openvsx node scripts/download.js\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"how-to-modify-the-plugin-market-source","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#how-to-modify-the-plugin-market-source","ariaLabel":"how to modify the plugin market source permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"How to modify the plugin market source"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can refer to the code here: [node/start-server.ts#L18]("},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/example/src/node/start-server.ts#","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/opensumi-module-samples/blob/main/example/src/node/start-server.ts#"}]},{"type":"text","value":" L18), add relevant parameter information in the configuration parameters of the Node process startup. The specific configuration is as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"ant-cloudide-marketplace","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ant-cloudide-marketplace","ariaLabel":"ant cloudide marketplace permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Ant CloudIDE Marketplace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" opts"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IServerAppOpts "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  marketplace"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    endpoint"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://marketplace.opentrs.cn'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    accountId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clcJKq_Gea47whxAJGrgoYqf'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    masterKey"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'_V_LPJ6Ar-1nrSVa05xDGBYp'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"                 "}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"accountId"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"masterKey"}]},{"type":"text","value":" used in the above configuration are the public secret key provided by the Ant CloudIDE Marketplace. This secret key can access all public extensions in the marketplace by default. If you need to customize the secret key, you can refer to the client management section in the "},{"type":"element","tagName":"a","properties":{"href":"https://www.opentrs.cn/cloudide/documents/documentDetail?productStr=cloudide-20221026&nameSpace=trms2d/xyyfdt&slug=ooxr2vxp32r9hv4q","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Ant CloudIDE Marketplace documentation"}]},{"type":"text","value":". Through the custom secret key, you can access your private extensions hosted in the marketplace."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"eclipse-open-vsx","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#eclipse-open-vsx","ariaLabel":"eclipse open vsx permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" opts"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IServerAppOpts "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  marketplace"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    endpoint"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://open-vsx.org/api'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Official Registry"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// endpoint: 'https://marketplace.smartide.cn/api', // China Mirror"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you encounter the problem that the extension marketplace cannot be accessed normally, please switch the entrypoint of the extension marketplace in time to solve the problem."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extension-synchronization-mechanism","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-synchronization-mechanism","ariaLabel":"extension synchronization mechanism permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Synchronization Mechanism"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"At present, OpenSumi has a certain lag (about three months) in compatibility with the VSCode extension API. Therefore, the VSCode extension hosted in the marketplace must first scan the code before synchronizing. If you find that the extension you want is missing, you can put forward the extension synchronization requirement in the "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Issues"}]},{"type":"text","value":" issues list, and the project team members will scan the extension and synchronize the available version."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-marketplace-entrypoint.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/custom-menu/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/custom-menu/page-data.json
        index a839e4f9..305d43c1 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/custom-menu/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/custom-menu/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-menu","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"register-custom-menus","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-custom-menus","ariaLabel":"register custom menus permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register Custom Menus"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are two common modes for registering custom menus:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register a new menu item"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Registers a submenu with existing menu items"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides the ability to customize menus based on OpenSumi "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":"mechanism, to implement "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" and call the methods provided by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"menuRegistry"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registerMenus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register a new menu item"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    item"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PartialBy"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IMenubarItem"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'id'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register a submenu with existing menu items"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    item"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuItem "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ISubmenuItem "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" IInternalComponentMenuItem\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"register-a-new-menu-item","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-a-new-menu-item","ariaLabel":"register a new menu item permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register a New Menu Item"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, if we want to register a new "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal"}]},{"type":"text","value":" menu item and hope it to be displayed in the first item, we call "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry.registerMenuBarItem"}]},{"type":"text","value":" and pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"order: 0"}]},{"type":"text","value":" to indicate that it is positioned in the first item."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01AMrUFm1E5RVxMZ417_!!6000000000300-2-tps-3808-2414.png","alt":"Menu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"register-submenus-under-existing-menu-items","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-submenus-under-existing-menu-items","ariaLabel":"register submenus under existing menu items permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register Submenus Under Existing Menu Items"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We register the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal"}]},{"type":"text","value":" menu item as the first item in the menubar, but it doesn't have a submenu, and will not respond when you click it. We need to register a set of submenu for it. Call "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"text","value":" of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry"}]},{"type":"text","value":" to register a single menu item, or you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"text","value":" method to register multiple submenu items in bulk. The menu needs to perform some action after click. In this case we want to split the terminal after click. We need to bind a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" for it. "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" can also be "},{"type":"element","tagName":"a","properties":{"href":"./custom-command"},"children":[{"type":"text","value":"customized"}]},{"type":"text","value":" by implementing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":", where we use the built-in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal.split"}]},{"type":"text","value":" command."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Note that by default the label of registered menubar items will not take effect, if the bound Command also specifies "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"label"}]},{"type":"text","value":" property during registration."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN018sreiD26Jd2EQc1RI_!!6000000007641-2-tps-2409-1510.png","alt":"Split Terminal"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"submenu-grouping","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#submenu-grouping","ariaLabel":"submenu grouping permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Submenu Grouping"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When there are plenty of registered menus, we may hope to space out some submenus with similar actions from other menus. We can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" property to group the submenus. Specifically, you can use the same "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" value for these "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"similar actions"}]},{"type":"text","value":" menus. Here we use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry.registerMenuItems"}]},{"type":"text","value":" to register more submenus."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.remove'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search.next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0142Ey531JAY0aEEurA_!!6000000000988-2-tps-2409-1510.png","alt":"More MenuItems"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-the-secondary-submenu","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-the-secondary-submenu","ariaLabel":"register the secondary submenu permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register the Secondary Submenu"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For the same type of menu, apart from using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" to group them, you can also register them as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"secondary submenu"}]},{"type":"text","value":". When there are a good deal of submenus, you can use secondary menu can effectively improve the user experience. For example, we want to register both "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search next match"}]},{"type":"text","value":" as a secondary menu of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" searchSubMenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal/search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.remove'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      submenu"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" searchSubMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"searchSubMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search.next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01uVgEDb1CnICqwllsD_!!6000000000125-2-tps-2208-1527.png","alt":"submenu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"unregistering-menus-or-menu-items","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#unregistering-menus-or-menu-items","ariaLabel":"unregistering menus or menu items permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Unregistering Menus or Menu Items"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi also provides the functionality of unregistering menus or menu items. If you do not need certain buttons on the interface, you can unregister them."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"core internally registers some menus in advance, such as Help, and also preconfigures menu items for these menus, such as Help > Toggle Developer Tools."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We provide two methods in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":": "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"text","value":". The former is used to delete a menu, while the latter is used to delete a menu item of a menu."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" menuItemId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, if we want to delete the Help menu item, we can use:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarHelpMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If we want to delete the Toggle Developer Tools functionality from the Help menu, we need to first find the ID of this menu item, which is usually the ID of the command that the menu is supposed to execute:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarHelpMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'electron.toggleDevTools'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can search for the menus that are registered internally in core by using the keyword "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"text","value":". For example, the menu items registered in Electron Basic can be found here: "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/36846886d9cbeee47ac17e745576fb0d99f1f423/packages/electron-basic/src/browser/index.ts#L159","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"packages/electron-basic/src/browser/index.ts#L159"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"using-icon-menus","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#using-icon-menus","ariaLabel":"using icon menus permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Using Icon Menus"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to custom menus, you can also choose to use icon menus, which display menu items in the form of icon icons."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01NnQNDA1JaCKpvk6lA_!!6000000001044-0-tps-720-217.jpg","alt":"submenu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#usage","ariaLabel":"usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To customize the rendering of the toolbar, you first need to use custom view,see "},{"type":"element","tagName":"a","properties":{"href":"./custom-view"},"children":[{"type":"text","value":"Custom Slot"}]},{"type":"text","value":" 。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"Then import the "},{"type":"element","tagName":"iconmenubar","properties":{},"children":[{"type":"text","value":" component."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IconMenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar/lib/browser/menu-bar.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Custom menu bar component.\n * Add a logo in here, and keep\n * opensumi's original menubar.\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MenuBarView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IconMenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then call the registerMenuItems method provided by menuRegistry in MenuContribution."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Register menu items on the MenuId.IconMenubarContext context."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  menus"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"IconMenubarContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REDO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'up'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_icon_menubar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNDO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'down'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_icon_menubar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Note: iconClass is required, otherwise icons cannot be displayed."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The group field will be automatically grouped for you, and separated by a separator | between different groups."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-menu.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-menu","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"register-custom-menus","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-custom-menus","ariaLabel":"register custom menus permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register Custom Menus"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are two common modes for registering custom menus:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Register a new menu item"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Registers a submenu with existing menu items"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides the ability to customize menus based on OpenSumi "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":"mechanism, to implement "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" and call the methods provided by "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"menuRegistry"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registerMenus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register a new menu item"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    item"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PartialBy"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IMenubarItem"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'id'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Register a submenu with existing menu items"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    item"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuItem "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ISubmenuItem "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" IInternalComponentMenuItem\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"register-a-new-menu-item","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-a-new-menu-item","ariaLabel":"register a new menu item permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register a New Menu Item"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, if we want to register a new "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal"}]},{"type":"text","value":" menu item and hope it to be displayed in the first item, we call "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry.registerMenuBarItem"}]},{"type":"text","value":" and pass "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"order: 0"}]},{"type":"text","value":" to indicate that it is positioned in the first item."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01AMrUFm1E5RVxMZ417_!!6000000000300-2-tps-3808-2414.png","alt":"Menu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"register-submenus-under-existing-menu-items","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-submenus-under-existing-menu-items","ariaLabel":"register submenus under existing menu items permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register Submenus Under Existing Menu Items"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We register the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal"}]},{"type":"text","value":" menu item as the first item in the menubar, but it doesn't have a submenu, and will not respond when you click it. We need to register a set of submenu for it. Call "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"text","value":" of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry"}]},{"type":"text","value":" to register a single menu item, or you can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"text","value":" method to register multiple submenu items in bulk. The menu needs to perform some action after click. In this case we want to split the terminal after click. We need to bind a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" for it. "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" can also be "},{"type":"element","tagName":"a","properties":{"href":"./custom-command"},"children":[{"type":"text","value":"customized"}]},{"type":"text","value":" by implementing "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":", where we use the built-in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal.split"}]},{"type":"text","value":" command."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Note that by default the label of registered menubar items will not take effect, if the bound Command also specifies "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"label"}]},{"type":"text","value":" property during registration."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN018sreiD26Jd2EQc1RI_!!6000000007641-2-tps-2409-1510.png","alt":"Split Terminal"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"submenu-grouping","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#submenu-grouping","ariaLabel":"submenu grouping permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Submenu Grouping"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When there are plenty of registered menus, we may hope to space out some submenus with similar actions from other menus. We can use the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" property to group the submenus. Specifically, you can use the same "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" value for these "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"similar actions"}]},{"type":"text","value":" menus. Here we use "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry.registerMenuItems"}]},{"type":"text","value":" to register more submenus."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.remove'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search.next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0142Ey531JAY0aEEurA_!!6000000000988-2-tps-2409-1510.png","alt":"More MenuItems"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"register-the-secondary-submenu","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#register-the-secondary-submenu","ariaLabel":"register the secondary submenu permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Register the Secondary Submenu"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For the same type of menu, apart from using "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" to group them, you can also register them as "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"secondary submenu"}]},{"type":"text","value":". When there are a good deal of submenus, you can use secondary menu can effectively improve the user experience. For example, we want to register both "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search next match"}]},{"type":"text","value":" as a secondary menu of "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" searchSubMenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal/search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.remove'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      submenu"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" searchSubMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"searchSubMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search.next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01uVgEDb1CnICqwllsD_!!6000000000125-2-tps-2208-1527.png","alt":"submenu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"unregistering-menus-or-menu-items","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#unregistering-menus-or-menu-items","ariaLabel":"unregistering menus or menu items permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Unregistering Menus or Menu Items"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi also provides the functionality of unregistering menus or menu items. If you do not need certain buttons on the interface, you can unregister them."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"core internally registers some menus in advance, such as Help, and also preconfigures menu items for these menus, such as Help > Toggle Developer Tools."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We provide two methods in "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":": "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"text","value":" and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"text","value":". The former is used to delete a menu, while the latter is used to delete a menu item of a menu."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" menuItemId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For example, if we want to delete the Help menu item, we can use:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarHelpMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If we want to delete the Toggle Developer Tools functionality from the Help menu, we need to first find the ID of this menu item, which is usually the ID of the command that the menu is supposed to execute:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarHelpMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'electron.toggleDevTools'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can search for the menus that are registered internally in core by using the keyword "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"text","value":". For example, the menu items registered in Electron Basic can be found here: "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/36846886d9cbeee47ac17e745576fb0d99f1f423/packages/electron-basic/src/browser/index.ts#L159","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"packages/electron-basic/src/browser/index.ts#L159"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"using-icon-menus","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#using-icon-menus","ariaLabel":"using icon menus permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Using Icon Menus"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In addition to custom menus, you can also choose to use icon menus, which display menu items in the form of icon icons."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01NnQNDA1JaCKpvk6lA_!!6000000001044-0-tps-720-217.jpg","alt":"submenu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#usage","ariaLabel":"usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To customize the rendering of the toolbar, you first need to use custom view,see "},{"type":"element","tagName":"a","properties":{"href":"./custom-view"},"children":[{"type":"text","value":"Custom Slot"}]},{"type":"text","value":" 。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"Then import the "},{"type":"element","tagName":"iconmenubar","properties":{},"children":[{"type":"text","value":" component."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IconMenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar/lib/browser/menu-bar.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Custom menu bar component.\n * Add a logo in here, and keep\n * opensumi's original menubar.\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MenuBarView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IconMenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then call the registerMenuItems method provided by menuRegistry in MenuContribution."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Register menu items on the MenuId.IconMenubarContext context."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  menus"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"IconMenubarContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REDO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'up'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_icon_menubar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNDO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'down'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_icon_menubar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Note: iconClass is required, otherwise icons cannot be displayed."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The group field will be automatically grouped for you, and separated by a separator | between different groups."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-menu.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/custom-readonly-mode/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/custom-readonly-mode/page-data.json
        index 7ab7244f..f423860d 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/custom-readonly-mode/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/custom-readonly-mode/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In some special scenarios, the integrator wants to be able to run in read-only mode. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sharing"}]},{"type":"text","value":" functions enable the receiver read but cannot write, use certain commands, or create and delete files, or other such requirements."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then we can use OpenSumi custom module capability to enable read-only mode by disabling certain functions and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" commands in the module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"custom-a-readonly-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-a-readonly-module","ariaLabel":"custom a readonly module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom a Readonly Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Firstly, custom a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" module:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ... more contribution"}]},{"type":"text","value":"\n    ReadOnlyContribution\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Secondly, implement "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadOnlyContribution"}]},{"type":"text","value":" and import it into the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":"'s providers:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TabBarToolbarContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ReadOnlyContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TabBarToolbarContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNREGISTER_COMMAND"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Disabling file save"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_CURRENT"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_ALL"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Disabling file operation"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_UNTITLED_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DELETE_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"RENAME_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"COPY_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"CUT_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"PASTE_FILE"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// unload command logic"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"of"}]},{"type":"text","value":" ReadOnlyContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNREGISTER_COMMAND"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" cmd "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"typeof"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" command"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"cmd"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// read-only mode to remove \"file\" and \"edit\" two menus"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarFileMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarEditMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ToolbarRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"More "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/common/common.command.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]}]},{"type":"text","value":" and "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/08cfc13779d0830fcd8663ca1e9dd4bc92218171/packages/core-browser/src/menu/next/menu-id.ts#L2","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId"}]}]},{"type":"text","value":" are available in the source code. You can simply uninstall Command or Menu as shown in the code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"integration-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#integration-module","ariaLabel":"integration module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Integration Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Finally, introduce it at integration time. Taking the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/ide-startup"}]},{"type":"text","value":" case as an example, when referring "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/a46a78a56b25b17f7f36ddc3f340d1720311559a/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"index.ts#L12"}]},{"type":"text","value":" , just import it to the modules field."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// other modules"}]},{"type":"text","value":"\n    ReadonlyModule\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//  You can also set editor.forceReadOnly as true in default configurations "}]},{"type":"text","value":"\n  defaultPreferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'editor.forceReadOnly'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here you have done a simple read-only mode support."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-readonly-mode.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In some special scenarios, the integrator wants to be able to run in read-only mode. For example, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sharing"}]},{"type":"text","value":" functions enable the receiver read but cannot write, use certain commands, or create and delete files, or other such requirements."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then we can use OpenSumi custom module capability to enable read-only mode by disabling certain functions and "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" commands in the module."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"custom-a-readonly-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-a-readonly-module","ariaLabel":"custom a readonly module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom a Readonly Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Firstly, custom a "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" module:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ... more contribution"}]},{"type":"text","value":"\n    ReadOnlyContribution\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Secondly, implement "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadOnlyContribution"}]},{"type":"text","value":" and import it into the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":"'s providers:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TabBarToolbarContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ReadOnlyContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TabBarToolbarContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNREGISTER_COMMAND"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Disabling file save"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_CURRENT"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_ALL"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Disabling file operation"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_UNTITLED_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DELETE_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"RENAME_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"COPY_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"CUT_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"PASTE_FILE"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// unload command logic"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"of"}]},{"type":"text","value":" ReadOnlyContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNREGISTER_COMMAND"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" cmd "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"typeof"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" command"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"cmd"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// read-only mode to remove \"file\" and \"edit\" two menus"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarFileMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarEditMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ToolbarRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"More "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/common/common.command.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]}]},{"type":"text","value":" and "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/08cfc13779d0830fcd8663ca1e9dd4bc92218171/packages/core-browser/src/menu/next/menu-id.ts#L2","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId"}]}]},{"type":"text","value":" are available in the source code. You can simply uninstall Command or Menu as shown in the code."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"integration-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#integration-module","ariaLabel":"integration module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Integration Module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Finally, introduce it at integration time. Taking the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/ide-startup"}]},{"type":"text","value":" case as an example, when referring "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/a46a78a56b25b17f7f36ddc3f340d1720311559a/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"index.ts#L12"}]},{"type":"text","value":" , just import it to the modules field."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// other modules"}]},{"type":"text","value":"\n    ReadonlyModule\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//  You can also set editor.forceReadOnly as true in default configurations "}]},{"type":"text","value":"\n  defaultPreferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'editor.forceReadOnly'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Here you have done a simple read-only mode support."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-readonly-mode.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/custom-reporter/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/custom-reporter/page-data.json
        index b5e9b6bc..21643386 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/custom-reporter/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/custom-reporter/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-reporter","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides built-in tracking report, which provides integrators with some key performance data, including key IDE data indicators and one party's core extensions. Integrators can report the data to their own platform."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"frontend-module-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#frontend-module-usage","ariaLabel":"frontend module usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Frontend Module Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IReporterService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IReporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporterService\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" timer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"time"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REPORT_NAME"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ACTIVE_EXTENSION"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    timer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"timeEnd"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"extension"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensionId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"back-end-module-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#back-end-module-usage","ariaLabel":"back end module usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Back-end Module Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IReporterService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IReporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporterService\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REPORT_NAME"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ACTIVE_EXTENSION"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" extension"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensionId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-usage","ariaLabel":"extension usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" reporter "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" reporterTimer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" reporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"time"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"ts-load"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"func"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  reporterTimer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"timeEnd"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"ts-load"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   reporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"report","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#report","ariaLabel":"report permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Report"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The integrator implements this by replacing the built-in Provider"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  PointData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  PerformanceData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IReporter\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Reporter"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IReporter"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PerformanceData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PointData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\ninjector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Reporter\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"appendix","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#appendix","ariaLabel":"appendix permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Appendix"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"inner-frame-tracking-records","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#inner-frame-tracking-records","ariaLabel":"inner frame tracking records permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Inner Frame Tracking records"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Name"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Type"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"msg"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Note"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extension activation time tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"loadExtensionMain"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"time to load the main JS extension"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCompletionItems"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"model.uri.toString()"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"obtain the completion time tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"data.extra.extDuration can obtain the duration time in the extension process"}]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"channelReconnect"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"reconnect time tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"measure"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"phase name"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"the time to start each phase of life cycle execution, where the msg format mainly includes: 1. each module life cycle duration: ${ModuleConstructName}.(initialize | onStart | onDidStart) 2. length of all module lifecycle: Contributions.(initialize | onStart | start)3.framework state ready duration::Framework.ready 4. length of execution of methods within each class: :${ClassConstructName}.${methodName}"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideHover"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDefinition"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideTypeDefinition"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideFoldingRanges"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentColors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideColorPresentations"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentHighlights"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideLinks"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideReferences"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideImplementation"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCodeActions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideRenameEdits"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideSignatureHelp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCodeLenses"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"resolveCodeLens"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"number of calls"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideOnTypeFormattingEdits"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideSelectionRanges"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-reporter.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-reporter","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi provides built-in tracking report, which provides integrators with some key performance data, including key IDE data indicators and one party's core extensions. Integrators can report the data to their own platform."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"frontend-module-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#frontend-module-usage","ariaLabel":"frontend module usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Frontend Module Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IReporterService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IReporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporterService\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" timer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"time"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REPORT_NAME"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ACTIVE_EXTENSION"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    timer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"timeEnd"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"extension"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensionId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"back-end-module-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#back-end-module-usage","ariaLabel":"back end module usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Back-end Module Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IReporterService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IReporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporterService\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REPORT_NAME"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ACTIVE_EXTENSION"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" extension"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensionId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-usage","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-usage","ariaLabel":"extension usage permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" reporter "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" reporterTimer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" reporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"time"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"ts-load"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"func"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  reporterTimer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"timeEnd"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"ts-load"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   reporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"report","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#report","ariaLabel":"report permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Report"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The integrator implements this by replacing the built-in Provider"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  PointData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  PerformanceData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IReporter\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Reporter"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IReporter"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PerformanceData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PointData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\ninjector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Reporter\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"appendix","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#appendix","ariaLabel":"appendix permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Appendix"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"inner-frame-tracking-records","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#inner-frame-tracking-records","ariaLabel":"inner frame tracking records permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Inner Frame Tracking records"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Name"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Type"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"msg"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"Note"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extension activation time tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"loadExtensionMain"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"time to load the main JS extension"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCompletionItems"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"model.uri.toString()"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"obtain the completion time tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"data.extra.extDuration can obtain the duration time in the extension process"}]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"channelReconnect"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"reconnect time tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"measure"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"phase name"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"the time to start each phase of life cycle execution, where the msg format mainly includes: 1. each module life cycle duration: ${ModuleConstructName}.(initialize | onStart | onDidStart) 2. length of all module lifecycle: Contributions.(initialize | onStart | start)3.framework state ready duration::Framework.ready 4. length of execution of methods within each class: :${ClassConstructName}.${methodName}"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideHover"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDefinition"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideTypeDefinition"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideFoldingRanges"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentColors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideColorPresentations"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentHighlights"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideLinks"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideReferences"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideImplementation"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCodeActions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideRenameEdits"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideSignatureHelp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCodeLenses"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"resolveCodeLens"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"number of calls"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideOnTypeFormattingEdits"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideSelectionRanges"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"call duration tracking"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-reporter.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/custom-view/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/custom-view/page-data.json
        index 388675dd..340ce90b 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/custom-view/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/custom-view/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-view","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"OverView"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi view is based on the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"slot mechanism"}]},{"type":"text","value":" design, where the entire Layout itself is a large React component that divides the view into several slots. For example, by default the layout component provided by OpenSumi divides the view into slot templates as shown in the following figure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01jVb1Nv1n4XHe0H2wG_!!6000000005036-2-tps-1714-1374.png","alt":"Default slot template"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Slots are used to mount component views and each slot consumes a data structure as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentsInfo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Array"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  views"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewContainerOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"View"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Irrelevant options have been hidden"}]},{"type":"text","value":"\n  component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ComponentType"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Slot renderer"}]},{"type":"text","value":" determines how data is consumed. By default, the view is laid out tiled from top to bottom. In sidebar and bottom bar, by default the slot renderer is the TabBar component that supports collapsing and expanding and toggling. Except for the sidebar area that supports multiple subviews though accordion, other places will only consume the first view of views by default."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The data provider offers LayoutConfig for the view configuration. The following code shows its data structure."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" defaultConfig"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" LayoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"left"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-scm'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-extension-manager'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Token of the view is registered and connected with the real React component by ComponentContribution."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Search "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./search.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SearchContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SEARCH_CONTAINER_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Search"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following picture is an example of customizing Layout by adding a ToolBar component to the right side of MenuBar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN014ixdVn1OainoMihzF_!!6000000001722-2-tps-1424-882.png","alt":"Preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Code sample here: "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/custom-toolbar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom View"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"view-registration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#view-registration","ariaLabel":"view registration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"View Registration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"First we need to register the ToolBar component to connect it to string Token "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"test-toolbar"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"TestToolbar"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"style"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      lineHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'35px'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      padding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'0 20px'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      textAlign"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'center'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      backgroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'var(--kt-menubar-background)'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    I'm a Test ToolBar\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TestContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TestToolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Test'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"notice-using-bottom-slot","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#notice-using-bottom-slot","ariaLabel":"notice using bottom slot permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Notice: Using Bottom Slot"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you are using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SlotLocation.bottom"}]},{"type":"text","value":", there has a style applied to bottom slot view wrapper: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"overflow: hidden;"}]},{"type":"text","value":".\nSo if you need scroll effect on your component, please add a additional "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"div"}]},{"type":"text","value":" with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"overflow: auto"}]},{"type":"text","value":" in the outside of your component:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"BottomView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"style"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" auto"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"App"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"/>"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"view-consumption","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#view-consumption","ariaLabel":"view consumption permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"View Consumption"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For this demand, there are two options to support view rendering:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Replace the top slot renderer to support left and right tiling"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Map out a new slot location on the layout component that supports ToolBar registration alone"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"custom-slot-renderers","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-slot-renderers","ariaLabel":"custom slot renderers permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom Slot Renderers"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Replace the top SlotRenderer with the SlotRenderer Contribution, changing the default top and bottom tiled mode into a horizontal flex mode:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"TopSlotRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  components"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"any"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" className"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" components "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tmp "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" components"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"map"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"item "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"views"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div style"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" display"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'flex'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" justifyContent"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'space-between'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"tmp"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"map"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Component"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Component key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SlotRendererContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TestToolbarSlotContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SlotRendererContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" SlotRendererRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerSlotRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TopSlotRenderer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then, you can add the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"test-toolbar"}]},{"type":"text","value":" component to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"top"}]},{"type":"text","value":" slot."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"add-slot-positions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#add-slot-positions","ariaLabel":"add slot positions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Add Slot Positions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To Add a slot position is very simple: just put the SlotRenderer component into the view. Layout is designed to be flexible and you can insert this renderer anywhere. In this case, you can choose to add the position in the Layout component or within the MenuBar view:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"LayoutComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BoxPanel direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"top-to-bottom\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BoxPanel direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"left-to-right\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer\n          color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"colors"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuBarBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"35"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"top\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 增加一个slot插槽"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer\n          color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"colors"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuBarBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"35"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"customAction\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"BoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"BoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Or add new Slot in the MenuBar Slot"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" MenuBarMixToolbarAction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MenuBarMixToolbarActionProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"clx"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenuBarWrapper"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"className"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"customAction\""}]},{"type":"text","value":" flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'initial'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After adding the slot location, you can put on the corresponding location and view Token in the view configuration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  customAction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extended-reading","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extended-reading","ariaLabel":"extended reading permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extended Reading"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In general, preceding methods can complete the layout requirements of common custom, but for some needs, such as, drag and change size, view, switching functions of customization scenarios, it would be more complicated to start writing with native HTML directly, and the interaction is inconsistent. OpenSumi provides several types of basic components that can be used to build layouts."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The Layout Basic components\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"BoxPanel,a common Flex layout component that supports Flex layouts in different directions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"SplitPanel,a class of BoxPanel that Supports mouse drag and drop to change the size"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Slot renderer implementation component\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Accordion,accordion component,support all capabilities of SplitPanel,as well as the control of folding and expanding subview panels"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"TabBar,a multi-tab management component, supports view activation, folding, expansion, and switching, and supports Tab drag to change position"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"TabPanel,Tab rendering component. Its sidebar is Panel Title + Accordion. The bottom column is the ordinary React view"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For details about how to use components, see the component type declaration."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-view.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/custom-view","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"OverView"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The OpenSumi view is based on the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"slot mechanism"}]},{"type":"text","value":" design, where the entire Layout itself is a large React component that divides the view into several slots. For example, by default the layout component provided by OpenSumi divides the view into slot templates as shown in the following figure:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01jVb1Nv1n4XHe0H2wG_!!6000000005036-2-tps-1714-1374.png","alt":"Default slot template"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Slots are used to mount component views and each slot consumes a data structure as follows:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentsInfo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Array"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  views"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewContainerOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"View"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Irrelevant options have been hidden"}]},{"type":"text","value":"\n  component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ComponentType"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Slot renderer"}]},{"type":"text","value":" determines how data is consumed. By default, the view is laid out tiled from top to bottom. In sidebar and bottom bar, by default the slot renderer is the TabBar component that supports collapsing and expanding and toggling. Except for the sidebar area that supports multiple subviews though accordion, other places will only consume the first view of views by default."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The data provider offers LayoutConfig for the view configuration. The following code shows its data structure."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" defaultConfig"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" LayoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"left"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-scm'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-extension-manager'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Token of the view is registered and connected with the real React component by ComponentContribution."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Search "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./search.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SearchContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SEARCH_CONTAINER_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Search"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The following picture is an example of customizing Layout by adding a ToolBar component to the right side of MenuBar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN014ixdVn1OainoMihzF_!!6000000001722-2-tps-1424-882.png","alt":"Preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Code sample here: "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/custom-toolbar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom View"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"view-registration","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#view-registration","ariaLabel":"view registration permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"View Registration"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"First we need to register the ToolBar component to connect it to string Token "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"test-toolbar"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"TestToolbar"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"style"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      lineHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'35px'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      padding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'0 20px'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      textAlign"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'center'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      backgroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'var(--kt-menubar-background)'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    I'm a Test ToolBar\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TestContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TestToolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Test'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"notice-using-bottom-slot","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#notice-using-bottom-slot","ariaLabel":"notice using bottom slot permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Notice: Using Bottom Slot"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you are using the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SlotLocation.bottom"}]},{"type":"text","value":", there has a style applied to bottom slot view wrapper: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"overflow: hidden;"}]},{"type":"text","value":".\nSo if you need scroll effect on your component, please add a additional "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"div"}]},{"type":"text","value":" with "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"overflow: auto"}]},{"type":"text","value":" in the outside of your component:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"BottomView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"style"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" auto"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"App"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"/>"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"view-consumption","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#view-consumption","ariaLabel":"view consumption permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"View Consumption"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For this demand, there are two options to support view rendering:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Replace the top slot renderer to support left and right tiling"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Map out a new slot location on the layout component that supports ToolBar registration alone"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"custom-slot-renderers","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#custom-slot-renderers","ariaLabel":"custom slot renderers permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Custom Slot Renderers"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Replace the top SlotRenderer with the SlotRenderer Contribution, changing the default top and bottom tiled mode into a horizontal flex mode:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"TopSlotRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  components"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"any"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" className"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" components "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tmp "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" components"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"map"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"item "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"views"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div style"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" display"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'flex'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" justifyContent"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'space-between'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"tmp"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"map"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Component"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Component key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SlotRendererContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TestToolbarSlotContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SlotRendererContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" SlotRendererRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerSlotRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TopSlotRenderer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then, you can add the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"test-toolbar"}]},{"type":"text","value":" component to the "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"top"}]},{"type":"text","value":" slot."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"add-slot-positions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#add-slot-positions","ariaLabel":"add slot positions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Add Slot Positions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To Add a slot position is very simple: just put the SlotRenderer component into the view. Layout is designed to be flexible and you can insert this renderer anywhere. In this case, you can choose to add the position in the Layout component or within the MenuBar view:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"LayoutComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BoxPanel direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"top-to-bottom\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BoxPanel direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"left-to-right\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer\n          color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"colors"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuBarBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"35"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"top\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 增加一个slot插槽"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer\n          color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"colors"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuBarBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"35"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"customAction\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"BoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"BoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Or add new Slot in the MenuBar Slot"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" MenuBarMixToolbarAction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MenuBarMixToolbarActionProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"clx"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenuBarWrapper"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"className"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"customAction\""}]},{"type":"text","value":" flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'initial'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After adding the slot location, you can put on the corresponding location and view Token in the view configuration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  customAction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"extended-reading","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extended-reading","ariaLabel":"extended reading permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extended Reading"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"In general, preceding methods can complete the layout requirements of common custom, but for some needs, such as, drag and change size, view, switching functions of customization scenarios, it would be more complicated to start writing with native HTML directly, and the interaction is inconsistent. OpenSumi provides several types of basic components that can be used to build layouts."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"The Layout Basic components\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"BoxPanel,a common Flex layout component that supports Flex layouts in different directions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"SplitPanel,a class of BoxPanel that Supports mouse drag and drop to change the size"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Slot renderer implementation component\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Accordion,accordion component,support all capabilities of SplitPanel,as well as the control of folding and expanding subview panels"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"TabBar,a multi-tab management component, supports view activation, folding, expansion, and switching, and supports Tab drag to change position"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"TabPanel,Tab rendering component. Its sidebar is Panel Title + Accordion. The bottom column is the ordinary React view"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For details about how to use components, see the component type declaration."}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-view.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/en/docs/integrate/universal-integrate-case/offline-deployment/page-data.json b/page-data/en/docs/integrate/universal-integrate-case/offline-deployment/page-data.json
        index c5b12ade..a64db4c8 100644
        --- a/page-data/en/docs/integrate/universal-integrate-case/offline-deployment/page-data.json
        +++ b/page-data/en/docs/integrate/universal-integrate-case/offline-deployment/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/offline-deployment","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi naturally supports offline deployment scenarios. You only need to replace some internal network resources such as (icon, onig-wasm) with the resource addresses of the intranet through browser-side configuration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"configuration-items-that-need-to-be-modified","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#configuration-items-that-need-to-be-modified","ariaLabel":"configuration items that need to be modified permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Configuration items that need to be modified"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"See the document "},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-config#%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AB%AF%E9%85%8D%E7%BD%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"How to Customize Browser Configuration"}]},{"type":"text","value":" for browser-side configuration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then pass the configuration parameters when new ClientAPP."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Import local icon resources, do not use cdn version, and set useCdnIcon to false after importing"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/style/icon.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// other ..."}]},{"type":"text","value":"\n  useCdnIcon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// see above"}]},{"type":"text","value":"\n  onigWasmUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// onig wasm file"}]},{"type":"text","value":"\n  extensionBrowserStyleSheet"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    componentUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Configuration plugin browser layer component style file"}]},{"type":"text","value":"\n    iconfontUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Configuration plugin browser layer iconfont style file"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"you-can-obtain-the-required-resources-from-the-following-methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#you-can-obtain-the-required-resources-from-the-following-methods","ariaLabel":"you can obtain the required resources from the following methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"You can obtain the required resources from the following methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"onigWasmUri"}]},{"type":"text","value":": Download from "},{"type":"element","tagName":"a","properties":{"href":"https://g.alicdn.com/kaitian/vscode-oniguruma-wasm/1.5.1/onig.wasm","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://g.alicdn.com/kaitian/vscode-oniguruma-wasm/1.5.1/onig.wasm"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"componentUri"}]},{"type":"text","value":": Get from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules/@opensumi/ide-components/dist/index.css"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"iconfontUri"}]},{"type":"text","value":": Get from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules/@opensumi/ide-components/lib/icon/iconfont/iconfont.css"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Upload these resources to the intranet environment, and then fill in the corresponding configuration items with the intranet resource address."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"localization-of-ide-startup-lite-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#localization-of-ide-startup-lite-extension","ariaLabel":"localization of ide startup lite extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Localization of ide-startup-lite Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-resources","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-resources","ariaLabel":"extension resources permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Resources"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Extensions in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ide-startup-lite"}]},{"type":"text","value":" are referenced through CDN. All extension resources are packaged and output in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/lite-worker-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"lite-worker-extensions"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"code-modification","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-modification","ariaLabel":"code modification permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Code Modification"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You need to modify the relevant code for importing plugins in Lite "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite/blob/main/web-lite/extension/utils.ts#L56","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"diff"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-diff"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-diff"]},"children":[{"type":"text","value":"export async function getExtension(extensionId: string, version: string): Promise {\n"},{"type":"element","tagName":"span","properties":{"className":["token","unchanged"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" const [, extName] = extensionId.split('.')\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","deleted-sign","deleted"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","deleted"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"  const extPath = `gw.alipayobjects.com/os/marketplace/extension/${extensionId}-${version}/`;\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","inserted-sign","inserted"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","inserted"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":"  const extPath = `${your local path}`;\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","unchanged"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" const packageJSON = await fetch(`https://${extPath}package.json`)\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   .then((res) => res.json());\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" packageJSON.contributes = mergeContributes(\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   packageJSON.kaitianContributes,\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   packageJSON.contributes,\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" );\n"}]},{"type":"text","value":"\n..."}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment"},"parent":{"relativePath":"integrate/universal-integrate-case/offline-deployment.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/en/docs/integrate/universal-integrate-case/offline-deployment","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"overview","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#overview","ariaLabel":"overview permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Overview"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi naturally supports offline deployment scenarios. You only need to replace some internal network resources such as (icon, onig-wasm) with the resource addresses of the intranet through browser-side configuration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"configuration-items-that-need-to-be-modified","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#configuration-items-that-need-to-be-modified","ariaLabel":"configuration items that need to be modified permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Configuration items that need to be modified"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"See the document "},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-config#%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AB%AF%E9%85%8D%E7%BD%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"How to Customize Browser Configuration"}]},{"type":"text","value":" for browser-side configuration."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Then pass the configuration parameters when new ClientAPP."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Import local icon resources, do not use cdn version, and set useCdnIcon to false after importing"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/style/icon.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// other ..."}]},{"type":"text","value":"\n  useCdnIcon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// see above"}]},{"type":"text","value":"\n  onigWasmUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// onig wasm file"}]},{"type":"text","value":"\n  extensionBrowserStyleSheet"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    componentUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Configuration plugin browser layer component style file"}]},{"type":"text","value":"\n    iconfontUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Configuration plugin browser layer iconfont style file"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"you-can-obtain-the-required-resources-from-the-following-methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#you-can-obtain-the-required-resources-from-the-following-methods","ariaLabel":"you can obtain the required resources from the following methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"You can obtain the required resources from the following methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"onigWasmUri"}]},{"type":"text","value":": Download from "},{"type":"element","tagName":"a","properties":{"href":"https://g.alicdn.com/kaitian/vscode-oniguruma-wasm/1.5.1/onig.wasm","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://g.alicdn.com/kaitian/vscode-oniguruma-wasm/1.5.1/onig.wasm"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"componentUri"}]},{"type":"text","value":": Get from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules/@opensumi/ide-components/dist/index.css"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"iconfontUri"}]},{"type":"text","value":": Get from "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules/@opensumi/ide-components/lib/icon/iconfont/iconfont.css"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Upload these resources to the intranet environment, and then fill in the corresponding configuration items with the intranet resource address."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"localization-of-ide-startup-lite-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#localization-of-ide-startup-lite-extension","ariaLabel":"localization of ide startup lite extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Localization of ide-startup-lite Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-resources","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-resources","ariaLabel":"extension resources permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Resources"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Extensions in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ide-startup-lite"}]},{"type":"text","value":" are referenced through CDN. All extension resources are packaged and output in "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/lite-worker-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"lite-worker-extensions"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"code-modification","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-modification","ariaLabel":"code modification permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Code Modification"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You need to modify the relevant code for importing plugins in Lite "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite/blob/main/web-lite/extension/utils.ts#L56","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"diff"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-diff"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-diff"]},"children":[{"type":"text","value":"export async function getExtension(extensionId: string, version: string): Promise {\n"},{"type":"element","tagName":"span","properties":{"className":["token","unchanged"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" const [, extName] = extensionId.split('.')\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","deleted-sign","deleted"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","deleted"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"  const extPath = `gw.alipayobjects.com/os/marketplace/extension/${extensionId}-${version}/`;\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","inserted-sign","inserted"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","inserted"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":"  const extPath = `${your local path}`;\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","unchanged"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" const packageJSON = await fetch(`https://${extPath}package.json`)\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   .then((res) => res.json());\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" packageJSON.contributes = mergeContributes(\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   packageJSON.kaitianContributes,\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   packageJSON.contributes,\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" );\n"}]},{"type":"text","value":"\n..."}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment"},"parent":{"relativePath":"integrate/universal-integrate-case/offline-deployment.en.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/sq/d/232018349.json b/page-data/sq/d/232018349.json
        index 89427c81..792b5c4c 100644
        --- a/page-data/sq/d/232018349.json
        +++ b/page-data/sq/d/232018349.json
        @@ -1 +1 @@
        -{"data":{"site":{"siteMetadata":{"showDingTalkQRCode":true,"showWeChatQRCode":true,"weChatQRCode":"https://img.alicdn.com/imgextra/i4/O1CN01JI8lvl1FOVmF66TOr_!!6000000000477-2-tps-1375-1375.png","dingTalkQRCode":"https://img.alicdn.com/imgextra/i2/O1CN01Fcw6RC1T8qozkQBFG_!!6000000002338-2-tps-200-239.png"}}}}
        \ No newline at end of file
        +{"data":{"site":{"siteMetadata":{"showDingTalkQRCode":true,"showWeChatQRCode":true,"weChatQRCode":"https://img.alicdn.com/imgextra/i2/O1CN01s9Ob1C1et4cU5tEfr_!!6000000003928-0-tps-1376-1373.jpg","dingTalkQRCode":"https://img.alicdn.com/imgextra/i2/O1CN01Fcw6RC1T8qozkQBFG_!!6000000002338-2-tps-200-239.png"}}}}
        \ No newline at end of file
        diff --git a/page-data/sq/d/2870459043.json b/page-data/sq/d/2870459043.json
        index f4ed462a..bf5f9b73 100644
        --- a/page-data/sq/d/2870459043.json
        +++ b/page-data/sq/d/2870459043.json
        @@ -1 +1 @@
        -{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","siteUrl":"https://opensumi.com","logoUrl":"https://img.alicdn.com/imgextra/i2/O1CN01dqjQei1tpbj9z9VPH_!!6000000005951-55-tps-87-78.svg","showSearch":true,"isOpenSumiSite":false,"showLanguageSwitcher":true,"showGithubStar":null,"showGithubCorner":true,"showDingTalkQRCode":true,"dingTalkQRCode":"https://img.alicdn.com/imgextra/i2/O1CN01Fcw6RC1T8qozkQBFG_!!6000000002338-2-tps-200-239.png","showWeChatQRCode":true,"weChatQRCode":"https://img.alicdn.com/imgextra/i4/O1CN01JI8lvl1FOVmF66TOr_!!6000000000477-2-tps-1375-1375.png","navs":[{"slug":"docs/integrate/overview","title":{"zh":"集成文档","en":"Documentation"},"target":null},{"slug":"docs/develop/how-to-contribute","title":{"zh":"开发文档","en":"Development"},"target":null},{"slug":"docs/extension/overview","title":{"zh":"插件研发","en":"Extension API"},"target":null},{"slug":"https://marketplace.opentrs.cn/square","title":{"zh":"插件市场","en":"Marketplace"},"target":null}],"redirects":[],"docsearchOptions":{"apiKey":"ea572740263d426554e711fca503c754","indexName":"opensumi","appId":"TJ9L5P0JEZ"},"ecosystems":null,"announcement":null}},"locales":{"internal":{"content":"{\"en\":{\"translation\":{\"轻松集成\":\"Easy to Integrate\",\"高拓展性\":\"Highly Extendable\",\"UI 自定义\":\"Customizable UI Design\",\"提供面向容器场景、Electron 场景和纯前端场景的快速集成解决方案,助力业务快速落地\":\"Integrate with your coding frameworks with ease. Support the container, Electron and front-end frameworks. Also help to ship and deploy quickly.\",\"提供从 VS Code 插件、OpenSumi 插件到 OpenSumi 模块三层业务解决方案,完美支持业务定制需求\":\"Support VS Code plugins, OpenSumi plugins and OpenSumi modules to meet various business requirements.\",\"提供可任意定制的布局系统,支持从简单的视图配置到布局模板研发的各类场景,支持从插件注入自定义视图\":\"Customize the UI design in any way you like, no matter to simply configure the built-in UI, or develop a UI template, or build your own UI through plugins.\",\"OpenSumi\":\"OpenSumi\",\"一款帮助你快速搭建本地和云端 IDE 的框架\":\"A framework helps to quickly build Cloud or Desktop IDEs.\",\"我们的优势\":\"Advantages\",\"概览\":\"Overview\",\"快速开始\":\"Quick Start\",\"开发者工具 IDE 是辅助淘宝开发者开发商家应用的本地开发工具,包含本地调试、代码编辑、真机预览、发布等功能,覆盖了应用开发的完整流程。\":\"Taobao Mini Program Studio is a local development tool to develop applications for Taobao sellers. It covers the entire development process including coding, debugging, real device preview, and deployment.\",\"小程序开发者工具是支付宝开放平台打造的一站式小程序研发工具,提供了编码、调试、测试、上传、项目管理等功能。不仅支持开发支付宝小程序,相同代码还通用于蚂蚁开放生态,可直接发布至淘宝、钉钉、高德等应用平台。\":\"Alipay Mini Program Studio is an IDE developed by Alipay open platform which supports coding, debugging, code test, upload, and project management. It is also compatible with Ant Open Ecosystem, the mini programs can be released to other platforms including TaoBbao, DingTalk, Amap.\",\"淘宝开发者工具\":\"Taobao Mini Program Studio\",\"支付宝小程序开发工具\":\"Alipay Mini Program Studio\",\"帮助\":\"Help\",\"更多产品\":\"Explore More\",\"谁在使用?\":\"Who is using?\",\"产品案例\":\"Customer Stories\",\"能力特性\":\"Features\",\"WebIDE 案例\":\"Web Sample\",\"Electron 案例\":\"Electron Sample\",\"纯前端案例\":\"Lite Web Sample\",\"官方主题\":\"Official Theme\",\"Gitlink 开源代码托管平台\":\"Gitlink open source code hosting platform\",\"CCF Gitlink 开源代码托管平台使用基于 OpenSumi 的极速版 IDE 框架,将代码阅读、代码评审、WebIDE 浏览等交互进行升级,极大的提高了用户的使用效率。\":\"The CCF Gitlink open source code hosting platform uses the OpenSumi-based Express IDE framework to upgrade interactions such as code reading, code review, and WebIDE browsing, which greatly improves the efficiency of users.\",\"所有产品\":\"Products\",\"周边生态\":\"Ecosystem\",\"搜索…\":\"Search...\",\"在 GitHub 上编辑\":\"Edit on GitHub\",\"贡献者\":\"Contributors\",\"演示\":\"Examples\",\"代码演示\":\"Examples\",\"设计指引\":\"Design Guide\",\"搜索\":\"Search\",\"收起所有\":\"Collapse all\",\"经典布局\":\"Classic\",\"三栏布局\":\"Three Cloumn\",\"两栏布局\":\"Two Cloumn\",\"分类色板\":\"Qualitative Palette\",\"顺序色板\":\"Sequential Palette\",\"发散色板\":\"Diverging Palette\",\"查看更多色板用法\":\"For More Useage\",\"切换至电脑视图\":\"Change to desktop view\",\"切换至平板视图\":\"Change to tablet view\",\"切换至移动端视图\":\"Change to mobile view\",\"进入全屏\":\"Enter Fullscreen\",\"离开全屏\":\"Exit Fullscreen\",\"产品首页\":\"Home Page\",\"图表示例\":\"Examples\",\"现在开始使用\":\"Getting Started\",\"使用文档\":\"Manual\",\"组件示例\":\"Examples\",\"基础产品\":\"Basic Products\",\"拓展产品\":\"Extension Products\",\"API 文档\":\"API\",\"正在施工中...\":\"Coming Soon...\",\"更新日志\":\"Changelog\",\"GitHub 仓库\":\"GitHub Repository\",\"国内镜像\":\"China Mirror\",\"OpenSumi 框架\":\"OpenSumi Framework\",\"一款帮助你快速搭建本地和云端 IDE 的框架。\":\"A framework helps you quickly build Cloud or Desktop IDE products.\",\"可视化引擎\":\"Visualization Engine\",\"图可视化引擎\":\"Graph Visualization\",\"移动可视化方案\":\"Mobile Charts\",\"跨平台高性能的移动端可视化解决方案,满足你的各种图表需求。\":\"An elegant, interactive and flexible native charting library for mobile.\",\"地理空间数据可视化\":\"Geospatial Visualization\",\"开箱即用的图表库\":\"A Charting Library\",\"X6 图编辑引擎\":\"X6 JavaScript Diagramming Library\",\"图编辑引擎\":\"JavaScript Diagramming Library\",\"AVA 是为了更简便的可视分析而生的技术框架。\":\"AVA is a framework for more convenient Visual Analytics.\",\"开箱即用、易于配置、极致体验的通用图表库。\":\"Pretty interactive charts out of box\",\"图表魔方\":\"Charts Maker\",\"生成图表\":\"Create charts\",\"OpenSumi 在线图表制作利器。\":\"Create pretty charts without code\",\"数据驱动,高度易用,可扩展的可视化图形语法。\":\"Data-driven visual language with a high level of usability and scalability\",\"便捷的关系数据可视化引擎与图分析工具。\":\"A Graph Visualization Framework in JavaScript\",\"高性能/高渲染质量的地理空间数据可视化框架。\":\"Large-scale WebGL-powered Geospatial Data Visualization\",\"专注于移动端的可视化解决方案,兼容 H5/小程序/Weex 等多端环境\":\"An elegant, interactive and flexible charting library for mobile\",\"基于 G6 封装的图分析应用组件。\":\"A react toolkit for graph analysis based on G6\",\"极易定制、开箱即用、数据驱动的图编辑引擎\":\"Data-driven diagramming library with a high level of usability and customization.\",\"跨平台高性能的移动端可视化解决方案,满足你的各种图表需求\":\"An elegant, interactive and flexible native charting library for mobile.\",\"墨者学院\":\"Mohist Academy\",\"基于商业场景下的数据可视化解决方案\":\"Business visualization solution\",\"基于 G2Plot 实现的 React 可视化图表库\":\"A React chart library based on G2Plot\",\"学院首页\":\"Home Page\",\"数据可视化社团\":\"Visualization Community\",\"语雀社区\":\"Yuque\",\"钉钉服务群\":\"DingTalk Group\",\"扫码进 OpenSumi 服务群\":\"Scan QRCode\",\"欢迎进入 2020 可视化智能研发时代\":\"New era of intelligent VIS\",\"OpenSumi 11-22 品牌日:知源·致远\":\"11-22, OpenSumi brand day!\",\"G2Plot 图表库发布\":\"G2Plot is released\",\"执行代码\":\"Run code\",\"在 CodeSandbox 中打开\":\"Open in CodeSandbox\",\"在 Riddle 中打开\":\"Open in Riddle\",\"在 StackBlitz 中打开\":\"Open in StackBlitz\",\"HTML 代码\":\"Html Source Code\",\"取消\":\"Cancel\",\"关于我们\":\"About us\",\"返回旧版\":\"Old site\",\"查看详情\":\"More\",\"上新啦,点击直达:\":\"New demos online. Click to visit: \",\"React 应用开发框架\":\"React Application Framework\",\"组件/文档研发工具\":\"Component doc generator\",\"React Hooks 库\":\"React Hooks Library\",\"设计动效\":\"Motion Solution\",\"社区\":\"Community\",\"StackOverflow\":\"StackOverflow\",\"体验科技专栏\":\"Ant Financial Experience Tech\",\"蚂蚁体验科技大会\":\"Experience Tech Conference\",\"D2 前端技术论坛\":\"D2 Frontend Technology Forum\",\"标准版基础产品\":\"Standard basic products\",\"标准版扩展产品\":\"Standard extended products\",\"移动定制(F版)产品\":\"Mobile (F series) products\"}}}"}}}}
        \ No newline at end of file
        +{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","siteUrl":"https://opensumi.com","logoUrl":"https://img.alicdn.com/imgextra/i2/O1CN01dqjQei1tpbj9z9VPH_!!6000000005951-55-tps-87-78.svg","showSearch":true,"isOpenSumiSite":false,"showLanguageSwitcher":true,"showGithubStar":null,"showGithubCorner":true,"showDingTalkQRCode":true,"dingTalkQRCode":"https://img.alicdn.com/imgextra/i2/O1CN01Fcw6RC1T8qozkQBFG_!!6000000002338-2-tps-200-239.png","showWeChatQRCode":true,"weChatQRCode":"https://img.alicdn.com/imgextra/i2/O1CN01s9Ob1C1et4cU5tEfr_!!6000000003928-0-tps-1376-1373.jpg","navs":[{"slug":"docs/integrate/overview","title":{"zh":"集成文档","en":"Documentation"},"target":null},{"slug":"docs/develop/how-to-contribute","title":{"zh":"开发文档","en":"Development"},"target":null},{"slug":"docs/extension/overview","title":{"zh":"插件研发","en":"Extension API"},"target":null},{"slug":"https://marketplace.opentrs.cn/square","title":{"zh":"插件市场","en":"Marketplace"},"target":null}],"redirects":[],"docsearchOptions":{"apiKey":"ea572740263d426554e711fca503c754","indexName":"opensumi","appId":"TJ9L5P0JEZ"},"ecosystems":null,"announcement":null}},"locales":{"internal":{"content":"{\"en\":{\"translation\":{\"轻松集成\":\"Easy to Integrate\",\"高拓展性\":\"Highly Extendable\",\"UI 自定义\":\"Customizable UI Design\",\"提供面向容器场景、Electron 场景和纯前端场景的快速集成解决方案,助力业务快速落地\":\"Integrate with your coding frameworks with ease. Support the container, Electron and front-end frameworks. Also help to ship and deploy quickly.\",\"提供从 VS Code 插件、OpenSumi 插件到 OpenSumi 模块三层业务解决方案,完美支持业务定制需求\":\"Support VS Code plugins, OpenSumi plugins and OpenSumi modules to meet various business requirements.\",\"提供可任意定制的布局系统,支持从简单的视图配置到布局模板研发的各类场景,支持从插件注入自定义视图\":\"Customize the UI design in any way you like, no matter to simply configure the built-in UI, or develop a UI template, or build your own UI through plugins.\",\"OpenSumi\":\"OpenSumi\",\"一款帮助你快速搭建本地和云端 IDE 的框架\":\"A framework helps to quickly build Cloud or Desktop IDEs.\",\"我们的优势\":\"Advantages\",\"概览\":\"Overview\",\"快速开始\":\"Quick Start\",\"开发者工具 IDE 是辅助淘宝开发者开发商家应用的本地开发工具,包含本地调试、代码编辑、真机预览、发布等功能,覆盖了应用开发的完整流程。\":\"Taobao Mini Program Studio is a local development tool to develop applications for Taobao sellers. It covers the entire development process including coding, debugging, real device preview, and deployment.\",\"小程序开发者工具是支付宝开放平台打造的一站式小程序研发工具,提供了编码、调试、测试、上传、项目管理等功能。不仅支持开发支付宝小程序,相同代码还通用于蚂蚁开放生态,可直接发布至淘宝、钉钉、高德等应用平台。\":\"Alipay Mini Program Studio is an IDE developed by Alipay open platform which supports coding, debugging, code test, upload, and project management. It is also compatible with Ant Open Ecosystem, the mini programs can be released to other platforms including TaoBbao, DingTalk, Amap.\",\"淘宝开发者工具\":\"Taobao Mini Program Studio\",\"支付宝小程序开发工具\":\"Alipay Mini Program Studio\",\"帮助\":\"Help\",\"更多产品\":\"Explore More\",\"谁在使用?\":\"Who is using?\",\"产品案例\":\"Customer Stories\",\"能力特性\":\"Features\",\"WebIDE 案例\":\"Web Sample\",\"Electron 案例\":\"Electron Sample\",\"纯前端案例\":\"Lite Web Sample\",\"官方主题\":\"Official Theme\",\"Gitlink 开源代码托管平台\":\"Gitlink open source code hosting platform\",\"CCF Gitlink 开源代码托管平台使用基于 OpenSumi 的极速版 IDE 框架,将代码阅读、代码评审、WebIDE 浏览等交互进行升级,极大的提高了用户的使用效率。\":\"The CCF Gitlink open source code hosting platform uses the OpenSumi-based Express IDE framework to upgrade interactions such as code reading, code review, and WebIDE browsing, which greatly improves the efficiency of users.\",\"所有产品\":\"Products\",\"周边生态\":\"Ecosystem\",\"搜索…\":\"Search...\",\"在 GitHub 上编辑\":\"Edit on GitHub\",\"贡献者\":\"Contributors\",\"演示\":\"Examples\",\"代码演示\":\"Examples\",\"设计指引\":\"Design Guide\",\"搜索\":\"Search\",\"收起所有\":\"Collapse all\",\"经典布局\":\"Classic\",\"三栏布局\":\"Three Cloumn\",\"两栏布局\":\"Two Cloumn\",\"分类色板\":\"Qualitative Palette\",\"顺序色板\":\"Sequential Palette\",\"发散色板\":\"Diverging Palette\",\"查看更多色板用法\":\"For More Useage\",\"切换至电脑视图\":\"Change to desktop view\",\"切换至平板视图\":\"Change to tablet view\",\"切换至移动端视图\":\"Change to mobile view\",\"进入全屏\":\"Enter Fullscreen\",\"离开全屏\":\"Exit Fullscreen\",\"产品首页\":\"Home Page\",\"图表示例\":\"Examples\",\"现在开始使用\":\"Getting Started\",\"使用文档\":\"Manual\",\"组件示例\":\"Examples\",\"基础产品\":\"Basic Products\",\"拓展产品\":\"Extension Products\",\"API 文档\":\"API\",\"正在施工中...\":\"Coming Soon...\",\"更新日志\":\"Changelog\",\"GitHub 仓库\":\"GitHub Repository\",\"国内镜像\":\"China Mirror\",\"OpenSumi 框架\":\"OpenSumi Framework\",\"一款帮助你快速搭建本地和云端 IDE 的框架。\":\"A framework helps you quickly build Cloud or Desktop IDE products.\",\"可视化引擎\":\"Visualization Engine\",\"图可视化引擎\":\"Graph Visualization\",\"移动可视化方案\":\"Mobile Charts\",\"跨平台高性能的移动端可视化解决方案,满足你的各种图表需求。\":\"An elegant, interactive and flexible native charting library for mobile.\",\"地理空间数据可视化\":\"Geospatial Visualization\",\"开箱即用的图表库\":\"A Charting Library\",\"X6 图编辑引擎\":\"X6 JavaScript Diagramming Library\",\"图编辑引擎\":\"JavaScript Diagramming Library\",\"AVA 是为了更简便的可视分析而生的技术框架。\":\"AVA is a framework for more convenient Visual Analytics.\",\"开箱即用、易于配置、极致体验的通用图表库。\":\"Pretty interactive charts out of box\",\"图表魔方\":\"Charts Maker\",\"生成图表\":\"Create charts\",\"OpenSumi 在线图表制作利器。\":\"Create pretty charts without code\",\"数据驱动,高度易用,可扩展的可视化图形语法。\":\"Data-driven visual language with a high level of usability and scalability\",\"便捷的关系数据可视化引擎与图分析工具。\":\"A Graph Visualization Framework in JavaScript\",\"高性能/高渲染质量的地理空间数据可视化框架。\":\"Large-scale WebGL-powered Geospatial Data Visualization\",\"专注于移动端的可视化解决方案,兼容 H5/小程序/Weex 等多端环境\":\"An elegant, interactive and flexible charting library for mobile\",\"基于 G6 封装的图分析应用组件。\":\"A react toolkit for graph analysis based on G6\",\"极易定制、开箱即用、数据驱动的图编辑引擎\":\"Data-driven diagramming library with a high level of usability and customization.\",\"跨平台高性能的移动端可视化解决方案,满足你的各种图表需求\":\"An elegant, interactive and flexible native charting library for mobile.\",\"墨者学院\":\"Mohist Academy\",\"基于商业场景下的数据可视化解决方案\":\"Business visualization solution\",\"基于 G2Plot 实现的 React 可视化图表库\":\"A React chart library based on G2Plot\",\"学院首页\":\"Home Page\",\"数据可视化社团\":\"Visualization Community\",\"语雀社区\":\"Yuque\",\"钉钉服务群\":\"DingTalk Group\",\"扫码进 OpenSumi 服务群\":\"Scan QRCode\",\"欢迎进入 2020 可视化智能研发时代\":\"New era of intelligent VIS\",\"OpenSumi 11-22 品牌日:知源·致远\":\"11-22, OpenSumi brand day!\",\"G2Plot 图表库发布\":\"G2Plot is released\",\"执行代码\":\"Run code\",\"在 CodeSandbox 中打开\":\"Open in CodeSandbox\",\"在 Riddle 中打开\":\"Open in Riddle\",\"在 StackBlitz 中打开\":\"Open in StackBlitz\",\"HTML 代码\":\"Html Source Code\",\"取消\":\"Cancel\",\"关于我们\":\"About us\",\"返回旧版\":\"Old site\",\"查看详情\":\"More\",\"上新啦,点击直达:\":\"New demos online. Click to visit: \",\"React 应用开发框架\":\"React Application Framework\",\"组件/文档研发工具\":\"Component doc generator\",\"React Hooks 库\":\"React Hooks Library\",\"设计动效\":\"Motion Solution\",\"社区\":\"Community\",\"StackOverflow\":\"StackOverflow\",\"体验科技专栏\":\"Ant Financial Experience Tech\",\"蚂蚁体验科技大会\":\"Experience Tech Conference\",\"D2 前端技术论坛\":\"D2 Frontend Technology Forum\",\"标准版基础产品\":\"Standard basic products\",\"标准版扩展产品\":\"Standard extended products\",\"移动定制(F版)产品\":\"Mobile (F series) products\"}}}"}}}}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/basic-design/connection/page-data.json b/page-data/zh/docs/develop/basic-design/connection/page-data.json
        index e5275dca..84c97700 100644
        --- a/page-data/zh/docs/develop/basic-design/connection/page-data.json
        +++ b/page-data/zh/docs/develop/basic-design/connection/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/connection","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 是前后端分离的设计,不论是在 Web 还是 Electron 环境下,浏览器/窗口中展示的界面部分我们称之为 OpenSumi 的前端,而对于文件读写、终端连接、插件进程等功能则运行在 OpenSumi 的后端。与传统的 B/S、C/S 架构不同的是,OpenSumi 前后端之间的通信仅由一个长链接连接实现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 Web 环境下,前后端会建立一条 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"WebSocket"}]},{"type":"text","value":" 连接:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01QiEuJD1QeVE2NkPMY_!!6000000002001-55-tps-182-243.svg","alt":"Web Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 Electron 环境下,则会建立一条 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Socket"}]},{"type":"text","value":" 连接进行进程间通信(IPC):"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01zDX6Wg1tjeXHaqyjQ_!!6000000005938-55-tps-232-242.svg","alt":"Electron Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"基本原理","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86","ariaLabel":"基本原理 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基本原理"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 核心功能的代码都是可以在 Web/Electron 端复用的,任何前/后端的交互都保持了接口、用法的一致性,这是因为 OpenSumi 内的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"connection"}]},{"type":"text","value":" 模块屏蔽了大部分平台、底层通信协之间的差异。connection 模块基于 "},{"type":"element","tagName":"a","properties":{"href":"https://www.jsonrpc.org/specification","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"JSON-RPC 2.0"}]},{"type":"text","value":" 实现了一个 RPC 框架,将 Web 与 Electron 端通信过程通过 RPC 协议来封装起来,这样对于集成用户来说,体现在代码层面,两端的区别非常小。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们通过一个 OpenSumi 内简单的 RPC 调用来介绍前后端通信的基本原理:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Front End"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMyService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BackServicePath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"doSomeThing"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Back End"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BackService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IBackService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ILocalData"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" data "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这是一个在 OpenSumi 中非常常见的例子,一般来讲,后端部分负责实现具体功能,而前端通过 RPC 调用来获取数据或执行某些操作(通常涉及 IO 或进程操作)。在这个例子中,前端通过 DI 来注入了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BackServicePath"}]},{"type":"text","value":",实际上 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BackServicePath"}]},{"type":"text","value":"是一个字符串,它通过 DI 被作为 Token 注入给前端使用,而其实现则是一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Proxy"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"前端对 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"$getSomelocalData"}]},{"type":"text","value":" 方法的调用,在通信过程中会被包装为一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Promise"}]},{"type":"text","value":",后端经过处理后直接返回,在底层的实现则会将这个返回值包装为请求结果,通过一个唯一 id 来发送到前端,这样就完成了一次 RPC 调用。除了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Request"}]},{"type":"text","value":" 之外,还有用于单项通知的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Notification"}]},{"type":"text","value":",区别在于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Notification"}]},{"type":"text","value":" 是没有返回值的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 调用 $getSomeLocalData 时"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 伪代码实现"}]},{"type":"text","value":"\nmyBackService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Proxy"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"target"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" prop"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"prop "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'$getSomeLocalData'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"args"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resolve"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" reject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// connection 表示前后端连接"}]},{"type":"text","value":"\n            connection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sendRequest"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"prop"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"args"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" response "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 请求返回后通过 Promise resolve 将结果返回"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"resolve"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"response"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"频道","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%A2%91%E9%81%93","ariaLabel":"频道 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"频道"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于多窗口的场景下,每一个窗口都会同 Server 端建立长连接,为了区分这些窗口,每个连接都由单独的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Channel"}]},{"type":"text","value":"来实现通信,窗口之间通信内容是完全隔离的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01aN1VYn1dkzqWPK2ev_!!6000000003775-55-tps-825-362.svg","alt":"Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%94%A8%E6%B3%95","ariaLabel":"用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了常见的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"前端 -> 后端"}]},{"type":"text","value":" 这种模式,OpenSumi 也支持 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"后端 -> 前端"}]},{"type":"text","value":" 调用。关于前后端通信的具体实例,可以参考 "},{"type":"element","tagName":"a","properties":{"href":"../sample/connection-between-browser-and-node"},"children":[{"type":"text","value":"前后端通信示例"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信"},"parent":{"relativePath":"develop/basic-design/connection.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/connection","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 是前后端分离的设计,不论是在 Web 还是 Electron 环境下,浏览器/窗口中展示的界面部分我们称之为 OpenSumi 的前端,而对于文件读写、终端连接、插件进程等功能则运行在 OpenSumi 的后端。与传统的 B/S、C/S 架构不同的是,OpenSumi 前后端之间的通信仅由一个长链接连接实现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 Web 环境下,前后端会建立一条 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"WebSocket"}]},{"type":"text","value":" 连接:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01QiEuJD1QeVE2NkPMY_!!6000000002001-55-tps-182-243.svg","alt":"Web Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 Electron 环境下,则会建立一条 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Socket"}]},{"type":"text","value":" 连接进行进程间通信(IPC):"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01zDX6Wg1tjeXHaqyjQ_!!6000000005938-55-tps-232-242.svg","alt":"Electron Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"基本原理","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86","ariaLabel":"基本原理 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基本原理"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 核心功能的代码都是可以在 Web/Electron 端复用的,任何前/后端的交互都保持了接口、用法的一致性,这是因为 OpenSumi 内的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"connection"}]},{"type":"text","value":" 模块屏蔽了大部分平台、底层通信协之间的差异。connection 模块基于 "},{"type":"element","tagName":"a","properties":{"href":"https://www.jsonrpc.org/specification","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"JSON-RPC 2.0"}]},{"type":"text","value":" 实现了一个 RPC 框架,将 Web 与 Electron 端通信过程通过 RPC 协议来封装起来,这样对于集成用户来说,体现在代码层面,两端的区别非常小。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们通过一个 OpenSumi 内简单的 RPC 调用来介绍前后端通信的基本原理:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Front End"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMyService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BackServicePath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"doSomeThing"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Back End"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BackService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IBackService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ILocalData"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" data "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这是一个在 OpenSumi 中非常常见的例子,一般来讲,后端部分负责实现具体功能,而前端通过 RPC 调用来获取数据或执行某些操作(通常涉及 IO 或进程操作)。在这个例子中,前端通过 DI 来注入了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BackServicePath"}]},{"type":"text","value":",实际上 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BackServicePath"}]},{"type":"text","value":"是一个字符串,它通过 DI 被作为 Token 注入给前端使用,而其实现则是一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Proxy"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"前端对 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"$getSomelocalData"}]},{"type":"text","value":" 方法的调用,在通信过程中会被包装为一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Promise"}]},{"type":"text","value":",后端经过处理后直接返回,在底层的实现则会将这个返回值包装为请求结果,通过一个唯一 id 来发送到前端,这样就完成了一次 RPC 调用。除了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Request"}]},{"type":"text","value":" 之外,还有用于单项通知的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Notification"}]},{"type":"text","value":",区别在于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Notification"}]},{"type":"text","value":" 是没有返回值的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 调用 $getSomeLocalData 时"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"myBackService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"$getSomeLocalData"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 伪代码实现"}]},{"type":"text","value":"\nmyBackService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Proxy"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"target"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" prop"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"prop "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'$getSomeLocalData'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"args"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resolve"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" reject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// connection 表示前后端连接"}]},{"type":"text","value":"\n            connection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sendRequest"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"prop"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"args"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" response "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 请求返回后通过 Promise resolve 将结果返回"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"resolve"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"response"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"频道","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%A2%91%E9%81%93","ariaLabel":"频道 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"频道"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于多窗口的场景下,每一个窗口都会同 Server 端建立长连接,为了区分这些窗口,每个连接都由单独的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Channel"}]},{"type":"text","value":"来实现通信,窗口之间通信内容是完全隔离的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01aN1VYn1dkzqWPK2ev_!!6000000003775-55-tps-825-362.svg","alt":"Connection"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%94%A8%E6%B3%95","ariaLabel":"用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了常见的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"前端 -> 后端"}]},{"type":"text","value":" 这种模式,OpenSumi 也支持 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"后端 -> 前端"}]},{"type":"text","value":" 调用。关于前后端通信的具体实例,可以参考 "},{"type":"element","tagName":"a","properties":{"href":"../sample/connection-between-browser-and-node"},"children":[{"type":"text","value":"前后端通信示例"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信"},"parent":{"relativePath":"develop/basic-design/connection.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/basic-design/contribution-point/page-data.json b/page-data/zh/docs/develop/basic-design/contribution-point/page-data.json
        index 8ea2da98..5950fea6 100644
        --- a/page-data/zh/docs/develop/basic-design/contribution-point/page-data.json
        +++ b/page-data/zh/docs/develop/basic-design/contribution-point/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/contribution-point","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"贡献点这一概念源自 VS Code 中的一个设计理念,即通过一个基础的贡献点定义,可以让一个能力的完整实现,分散到各个子模块的贡献点文件之中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"举个例子","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%B8%BE%E4%B8%AA%E4%BE%8B%E5%AD%90","ariaLabel":"举个例子 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"举个例子"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"整个 IDE 内的快捷键是十分多的,如果某个模块希望注册快捷键,直接去依赖快捷键模块,而如果快捷键模块又希望注册命令,又要直接依赖命令模块以及其他逻辑模块,这样一来就会让这些模块之间的关系难以维护。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"贡献点"}]},{"type":"text","value":" 机制,我们就可以在公共模块中只进行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"贡献点"}]},{"type":"text","value":" 机制下逻辑的执行,而不需要关注具体快捷键的实现细节。如图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0106jNQW1fyOfEae2Hd_!!6000000004075-2-tps-2146-1048.png","alt":"例子"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"常用贡献点","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%B8%B8%E7%94%A8%E8%B4%A1%E7%8C%AE%E7%82%B9","ariaLabel":"常用贡献点 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"常用贡献点"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通常我们在使用贡献点实现相应功能后,需要通过在模块内进行声明,同时在集成侧引入才能生效,基础的声明如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    DemoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"后续案例不再赘述贡献点文件的引入的方法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"生命周期","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F","ariaLabel":"生命周期 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"生命周期"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你想在应用启动的 "},{"type":"element","tagName":"a","properties":{"href":"./lifecycle"},"children":[{"type":"text","value":"生命周期"}]},{"type":"text","value":" 阶段执行一些特定逻辑,你可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" 贡献点,在应用的生命周期阶段挂载不同的“钩子”函数进行特定的逻辑操作,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" ClientAppContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ClientAppContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"initialize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在初始化阶段执行该函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onStart"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在应用启动阶段执行该函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidStart"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在大部分模块启动完成阶段执行该函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onWillStop"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在应用即将关闭前执行该函数,如果返回内容为 true,则关闭的行为将会被中断"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onStop"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 关闭阶段执行"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDisposeSideEffects"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 与 onStop 不同的是,onStop 仅适用于非阻塞性的工作"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// onDisposeEffect 适用于一些耗时较长的阻塞性任务,适用于将 IDE 作为大组件优雅卸载的场景"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 但 onDisposeEffect 在 Electron 下可能会阻塞窗口关闭(例如需要1s以上时间关闭)"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onReconnect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件进程重启阶段执行该函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"命令注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%86%8C","ariaLabel":"命令注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"命令注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"命令注册的贡献点为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" ,我们可以通过该贡献点进行框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command(命令)"}]},{"type":"text","value":"的注册,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.command.test'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'测试命令'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'测试命令'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"配置注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%85%8D%E7%BD%AE%E6%B3%A8%E5%86%8C","ariaLabel":"配置注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"配置注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"配置注册的贡献点为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" ,我们可以通过该贡献点进行框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Preference(配置项)"}]},{"type":"text","value":"的注册,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'typescript'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo language type'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多详细配置及用法,可参考 "},{"type":"element","tagName":"a","properties":{"href":"../module-apis/preference"},"children":[{"type":"text","value":"配置模块"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"快捷键注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%B3%A8%E5%86%8C","ariaLabel":"快捷键注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"快捷键注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"快捷键注册的贡献点为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" ,我们可以通过该贡献点进行框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keybinding(快捷键)"}]},{"type":"text","value":"的注册,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" quickFileOpen"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ctrlcmd+p'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"右键菜单注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%E6%B3%A8%E5%86%8C","ariaLabel":"右键菜单注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"右键菜单注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"右键注册的贡献点为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" ,我们可以通过该贡献点进行框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Menu(菜单)"}]},{"type":"text","value":"的注册,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册一个一级菜单"}]},{"type":"text","value":"\n    menus"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"DebugBreakpointsContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'断点调试'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"999"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册菜单下的一个选项"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"DebugBreakpointsContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug.breakpoint.delete'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'删除断点'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_has_breakpoint'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册二级菜单"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" menuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" subMenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more/items'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 绑定二级菜单到一个一级菜单的菜单项中"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      submenu"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" subMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'更多设置'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册二级菜单内容"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"subMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more.setting'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"框架默认注册了共计 53 个右键菜单的注册区位,详细可见 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId"}]},{"type":"text","value":" 定义。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"自定义协议文件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8D%8F%E8%AE%AE%E6%96%87%E4%BB%B6","ariaLabel":"自定义协议文件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义协议文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 中,我们通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IFileServiceClient"}]},{"type":"text","value":" 的 DI Token 获取到对应的文件服务进行文件读写,在面对一些场景化的文件内容,我们通常会采取自定义协议头的方式,来实现对这类内容的读取,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"用户配置文件,我们使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"user_stroage://settings.json"}]},{"type":"text","value":" 进行读取"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"调试过程的虚拟文件,我们使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debug://{filename}"}]},{"type":"text","value":" 进行读取"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现这块功能,我们便是通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"FsProviderContribution"}]},{"type":"text","value":" 的贡献点去实现的,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  FsProviderContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IUserStorageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"FileSystemProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserStorageProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IUserStorageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 实现协议"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FsProviderContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"FsProviderContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'user_storage'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserStorageProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制"},"parent":{"relativePath":"develop/basic-design/contribution-point.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/contribution-point","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"贡献点这一概念源自 VS Code 中的一个设计理念,即通过一个基础的贡献点定义,可以让一个能力的完整实现,分散到各个子模块的贡献点文件之中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"举个例子","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%B8%BE%E4%B8%AA%E4%BE%8B%E5%AD%90","ariaLabel":"举个例子 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"举个例子"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"整个 IDE 内的快捷键是十分多的,如果某个模块希望注册快捷键,直接去依赖快捷键模块,而如果快捷键模块又希望注册命令,又要直接依赖命令模块以及其他逻辑模块,这样一来就会让这些模块之间的关系难以维护。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"贡献点"}]},{"type":"text","value":" 机制,我们就可以在公共模块中只进行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"贡献点"}]},{"type":"text","value":" 机制下逻辑的执行,而不需要关注具体快捷键的实现细节。如图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0106jNQW1fyOfEae2Hd_!!6000000004075-2-tps-2146-1048.png","alt":"例子"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"常用贡献点","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%B8%B8%E7%94%A8%E8%B4%A1%E7%8C%AE%E7%82%B9","ariaLabel":"常用贡献点 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"常用贡献点"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通常我们在使用贡献点实现相应功能后,需要通过在模块内进行声明,同时在集成侧引入才能生效,基础的声明如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    DemoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"后续案例不再赘述贡献点文件的引入的方法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"生命周期","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F","ariaLabel":"生命周期 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"生命周期"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你想在应用启动的 "},{"type":"element","tagName":"a","properties":{"href":"./lifecycle"},"children":[{"type":"text","value":"生命周期"}]},{"type":"text","value":" 阶段执行一些特定逻辑,你可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" 贡献点,在应用的生命周期阶段挂载不同的“钩子”函数进行特定的逻辑操作,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" ClientAppContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ClientAppContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"initialize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在初始化阶段执行该函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onStart"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在应用启动阶段执行该函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidStart"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在大部分模块启动完成阶段执行该函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onWillStop"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在应用即将关闭前执行该函数,如果返回内容为 true,则关闭的行为将会被中断"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onStop"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 关闭阶段执行"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDisposeSideEffects"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 与 onStop 不同的是,onStop 仅适用于非阻塞性的工作"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// onDisposeEffect 适用于一些耗时较长的阻塞性任务,适用于将 IDE 作为大组件优雅卸载的场景"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 但 onDisposeEffect 在 Electron 下可能会阻塞窗口关闭(例如需要1s以上时间关闭)"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onReconnect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件进程重启阶段执行该函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"命令注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%86%8C","ariaLabel":"命令注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"命令注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"命令注册的贡献点为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" ,我们可以通过该贡献点进行框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command(命令)"}]},{"type":"text","value":"的注册,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.command.test'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'测试命令'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'测试命令'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"配置注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%85%8D%E7%BD%AE%E6%B3%A8%E5%86%8C","ariaLabel":"配置注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"配置注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"配置注册的贡献点为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" ,我们可以通过该贡献点进行框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Preference(配置项)"}]},{"type":"text","value":"的注册,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'typescript'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo language type'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多详细配置及用法,可参考 "},{"type":"element","tagName":"a","properties":{"href":"../module-apis/preference"},"children":[{"type":"text","value":"配置模块"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"快捷键注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%B3%A8%E5%86%8C","ariaLabel":"快捷键注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"快捷键注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"快捷键注册的贡献点为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" ,我们可以通过该贡献点进行框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keybinding(快捷键)"}]},{"type":"text","value":"的注册,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" quickFileOpen"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ctrlcmd+p'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"右键菜单注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%E6%B3%A8%E5%86%8C","ariaLabel":"右键菜单注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"右键菜单注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"右键注册的贡献点为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" ,我们可以通过该贡献点进行框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Menu(菜单)"}]},{"type":"text","value":"的注册,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册一个一级菜单"}]},{"type":"text","value":"\n    menus"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"DebugBreakpointsContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'断点调试'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"999"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册菜单下的一个选项"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"DebugBreakpointsContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug.breakpoint.delete'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'删除断点'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_has_breakpoint'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册二级菜单"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" menuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" subMenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more/items'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 绑定二级菜单到一个一级菜单的菜单项中"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      submenu"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" subMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'更多设置'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册二级菜单内容"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"subMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'more.setting'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"框架默认注册了共计 53 个右键菜单的注册区位,详细可见 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId"}]},{"type":"text","value":" 定义。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"自定义协议文件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8D%8F%E8%AE%AE%E6%96%87%E4%BB%B6","ariaLabel":"自定义协议文件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义协议文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 中,我们通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IFileServiceClient"}]},{"type":"text","value":" 的 DI Token 获取到对应的文件服务进行文件读写,在面对一些场景化的文件内容,我们通常会采取自定义协议头的方式,来实现对这类内容的读取,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"用户配置文件,我们使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"user_stroage://settings.json"}]},{"type":"text","value":" 进行读取"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"调试过程的虚拟文件,我们使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debug://{filename}"}]},{"type":"text","value":" 进行读取"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现这块功能,我们便是通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"FsProviderContribution"}]},{"type":"text","value":" 的贡献点去实现的,使用方法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  FsProviderContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IUserStorageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"FileSystemProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserStorageProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IUserStorageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 实现协议"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FsProviderContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"FsProviderContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'user_storage'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserStorageProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制"},"parent":{"relativePath":"develop/basic-design/contribution-point.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/basic-design/core-idea/page-data.json b/page-data/zh/docs/develop/basic-design/core-idea/page-data.json
        index 6f18f277..0a034ef9 100644
        --- a/page-data/zh/docs/develop/basic-design/core-idea/page-data.json
        +++ b/page-data/zh/docs/develop/basic-design/core-idea/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/core-idea","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 定位是一款 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IDE 框架"}]},{"type":"text","value":" ,基于 OpenSumi 你可以搭建出 Cloud 或 Desktop 端的 IDE 产品。OpenSumi 默认会提供以下能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"基础功能模块,例如 FileTree、Editor、SCM 等"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"提供丰富的自定义能力,包括集成、插件等形式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"兼容 VS Code 的插件系统,支持 LSP/DAP 等主流协议"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与之相对的,OpenSumi 目前不提供针对特定端的以下能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Cloud IDE 场景下的容器/虚拟机管理"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Desktop IDE 场景下的窗口管理"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以下列举了一些你可能会遇到 OpenSumi 中常见的概念、名词与解释"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97","ariaLabel":"模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 的发布产物是不同模块的 NPM 包,每个包就是一个"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"模块"}]},{"type":"text","value":",它们分别负责不同的功能。模块一般由前端、后端以及公共代码、类型几部分组成。一个常见的模块结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── README.md\n├── __tests__\n│   ├── browser\n│   ├── common\n│   ├── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n├── package.json\n├── src\n│   ├── browser\n│   ├── common\n│   ├── index.ts\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── webpack.config.js"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"模块的职责","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97%E7%9A%84%E8%81%8C%E8%B4%A3","ariaLabel":"模块的职责 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块的职责"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般意义上模块可以提供一些基础功能,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" 模块提供了全文搜索功能,在该模块的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/browser"}]},{"type":"text","value":" 目录下包含了前端 UI 相关的代码,而执行搜索的则是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/node"}]},{"type":"text","value":" 目录下的代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"前端与后端通过 RPC 的方式通信,与调用一个异步方法没有太大区别,你不需要关心通信细节,只需要参考已有的模式来组织代码即可。关于模块前后端通信的使用可以参考 "},{"type":"element","tagName":"a","properties":{"href":"./connection"},"children":[{"type":"text","value":"前端后端通信"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块代码中 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/node/common"}]},{"type":"text","value":" 都不是必须的,允许存在仅提供前端 UI 或后端功能的模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块可以提供贡献点(Contribution)给其他模块,其他模块可以根据该模块声明的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ContributionProvider"}]},{"type":"text","value":" 进行贡献点的注册。贡献点机制主要用于模块提供注册能力给其他模块的场景,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-layout"}]},{"type":"text","value":" 提供组件级别的贡献点,而其他模块通过注册组件后,可以结合 Layout 的能力自由组装 IDE 界面,菜单模块会提供注册菜单的贡献点。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"模块分层与依赖","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97%E5%88%86%E5%B1%82%E4%B8%8E%E4%BE%9D%E8%B5%96","ariaLabel":"模块分层与依赖 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块分层与依赖"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们将模块划分为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"核心模块"}]},{"type":"text","value":" 、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"功能模块"}]},{"type":"text","value":"。模块之间存在一定的依赖关系,典型的例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":" 模块负责文件读写、以及文件系统注册与管理等功能,在许多功能模块中读写相关的操作都会依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"核心模块是指组成 IDE 核心功能的一些必选模块,这些模块不可被去除。例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-layout"}]},{"type":"text","value":" 负责实现主界面整体布局及视图注册功能, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" 、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-node"}]},{"type":"text","value":" 负责维护 IDE ClientApp、ServerApp 实例的声明周期以及相关贡献点管理。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"功能模块一般是可插拔的,也就是在集成代码中可以将这些模块去除,或者重新替换实现,并不会影响其他功能。但一些提供插件 API 的模块如果去除会导致插件无法正常工作。因为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension"}]},{"type":"text","value":" 依赖了大部分功能模块来提供 API。目前可以插拔的模块有:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"大纲 outline"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"跨文件搜索 file-search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"终端 terminal-next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"评论 comments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"已打开编辑器 opened-editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"工具栏 toolbar"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"依赖注入","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5","ariaLabel":"依赖注入 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"依赖注入"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 使用一款自研的 DI 框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 来实现这些模块间的实例管理与获取,依赖抽象接口的约定可以让我们很轻松的覆盖部分 Service 甚至是模块的实现,提高可拓展性。\n关于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 的具体使用及详细介绍可以参考文档 "},{"type":"element","tagName":"a","properties":{"href":"./dependence-injector"},"children":[{"type":"text","value":"依赖注入"}]},{"type":"text","value":",或访问源码查看 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/di"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件与-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E4%B8%8E-api","ariaLabel":"插件与 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件与 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"前面提到,OpenSumi 很多功能模块是可插拔的,而无法插拔的模块则是因为它们提供了插件 API (换句话说将 extension 模块移除后这些模块也可以插拔)。OpenSumi 的插件体系是基于 VS Code 的拓展,可以看作是 VS Code 插件的超集,关于插件体系的详细介绍参考 "},{"type":"element","tagName":"a","properties":{"href":"./extension-mechanism"},"children":[{"type":"text","value":"插件机制"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件与 VS Code 插件类似,我们会保持与 VS Code 插件 API 的兼容性,也会不断更新、迭代插件 API 。插件 API 是以方法、类等形式提供给第三方代码来调用的对象集合。extension 模块包含了所有插件及插件 API 相关的实现,但具体到某一个插件 API ,最终调用的则是实现它们的模块,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.window.createTerminal"}]},{"type":"text","value":" 能力是由 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal-next"}]},{"type":"text","value":" 模块提供的,而 extension 中只是将其包装提供给插件调用而已。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念"},"parent":{"relativePath":"develop/basic-design/core-idea.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/core-idea","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 定位是一款 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IDE 框架"}]},{"type":"text","value":" ,基于 OpenSumi 你可以搭建出 Cloud 或 Desktop 端的 IDE 产品。OpenSumi 默认会提供以下能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"基础功能模块,例如 FileTree、Editor、SCM 等"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"提供丰富的自定义能力,包括集成、插件等形式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"兼容 VS Code 的插件系统,支持 LSP/DAP 等主流协议"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与之相对的,OpenSumi 目前不提供针对特定端的以下能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Cloud IDE 场景下的容器/虚拟机管理"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Desktop IDE 场景下的窗口管理"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以下列举了一些你可能会遇到 OpenSumi 中常见的概念、名词与解释"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97","ariaLabel":"模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 的发布产物是不同模块的 NPM 包,每个包就是一个"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"模块"}]},{"type":"text","value":",它们分别负责不同的功能。模块一般由前端、后端以及公共代码、类型几部分组成。一个常见的模块结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── README.md\n├── __tests__\n│   ├── browser\n│   ├── common\n│   ├── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n├── package.json\n├── src\n│   ├── browser\n│   ├── common\n│   ├── index.ts\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── webpack.config.js"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"模块的职责","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97%E7%9A%84%E8%81%8C%E8%B4%A3","ariaLabel":"模块的职责 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块的职责"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般意义上模块可以提供一些基础功能,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" 模块提供了全文搜索功能,在该模块的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/browser"}]},{"type":"text","value":" 目录下包含了前端 UI 相关的代码,而执行搜索的则是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/node"}]},{"type":"text","value":" 目录下的代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"前端与后端通过 RPC 的方式通信,与调用一个异步方法没有太大区别,你不需要关心通信细节,只需要参考已有的模式来组织代码即可。关于模块前后端通信的使用可以参考 "},{"type":"element","tagName":"a","properties":{"href":"./connection"},"children":[{"type":"text","value":"前端后端通信"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块代码中 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/node/common"}]},{"type":"text","value":" 都不是必须的,允许存在仅提供前端 UI 或后端功能的模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块可以提供贡献点(Contribution)给其他模块,其他模块可以根据该模块声明的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ContributionProvider"}]},{"type":"text","value":" 进行贡献点的注册。贡献点机制主要用于模块提供注册能力给其他模块的场景,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-layout"}]},{"type":"text","value":" 提供组件级别的贡献点,而其他模块通过注册组件后,可以结合 Layout 的能力自由组装 IDE 界面,菜单模块会提供注册菜单的贡献点。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"模块分层与依赖","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97%E5%88%86%E5%B1%82%E4%B8%8E%E4%BE%9D%E8%B5%96","ariaLabel":"模块分层与依赖 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块分层与依赖"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们将模块划分为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"核心模块"}]},{"type":"text","value":" 、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"功能模块"}]},{"type":"text","value":"。模块之间存在一定的依赖关系,典型的例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":" 模块负责文件读写、以及文件系统注册与管理等功能,在许多功能模块中读写相关的操作都会依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"核心模块是指组成 IDE 核心功能的一些必选模块,这些模块不可被去除。例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-layout"}]},{"type":"text","value":" 负责实现主界面整体布局及视图注册功能, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" 、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-node"}]},{"type":"text","value":" 负责维护 IDE ClientApp、ServerApp 实例的声明周期以及相关贡献点管理。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"功能模块一般是可插拔的,也就是在集成代码中可以将这些模块去除,或者重新替换实现,并不会影响其他功能。但一些提供插件 API 的模块如果去除会导致插件无法正常工作。因为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension"}]},{"type":"text","value":" 依赖了大部分功能模块来提供 API。目前可以插拔的模块有:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"大纲 outline"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"跨文件搜索 file-search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"终端 terminal-next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"评论 comments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"已打开编辑器 opened-editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"工具栏 toolbar"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"依赖注入","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5","ariaLabel":"依赖注入 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"依赖注入"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 使用一款自研的 DI 框架 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 来实现这些模块间的实例管理与获取,依赖抽象接口的约定可以让我们很轻松的覆盖部分 Service 甚至是模块的实现,提高可拓展性。\n关于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 的具体使用及详细介绍可以参考文档 "},{"type":"element","tagName":"a","properties":{"href":"./dependence-injector"},"children":[{"type":"text","value":"依赖注入"}]},{"type":"text","value":",或访问源码查看 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/di"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件与-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E4%B8%8E-api","ariaLabel":"插件与 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件与 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"前面提到,OpenSumi 很多功能模块是可插拔的,而无法插拔的模块则是因为它们提供了插件 API (换句话说将 extension 模块移除后这些模块也可以插拔)。OpenSumi 的插件体系是基于 VS Code 的拓展,可以看作是 VS Code 插件的超集,关于插件体系的详细介绍参考 "},{"type":"element","tagName":"a","properties":{"href":"./extension-mechanism"},"children":[{"type":"text","value":"插件机制"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件与 VS Code 插件类似,我们会保持与 VS Code 插件 API 的兼容性,也会不断更新、迭代插件 API 。插件 API 是以方法、类等形式提供给第三方代码来调用的对象集合。extension 模块包含了所有插件及插件 API 相关的实现,但具体到某一个插件 API ,最终调用的则是实现它们的模块,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.window.createTerminal"}]},{"type":"text","value":" 能力是由 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal-next"}]},{"type":"text","value":" 模块提供的,而 extension 中只是将其包装提供给插件调用而已。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念"},"parent":{"relativePath":"develop/basic-design/core-idea.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/basic-design/core-modules/page-data.json b/page-data/zh/docs/develop/basic-design/core-modules/page-data.json
        index eda22892..2a31f475 100644
        --- a/page-data/zh/docs/develop/basic-design/core-modules/page-data.json
        +++ b/page-data/zh/docs/develop/basic-design/core-modules/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/core-modules","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 的仓库代码是通过 "},{"type":"element","tagName":"a","properties":{"href":"https://www.perforce.com/blog/vcs/what-monorepo","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Monorepo"}]},{"type":"text","value":" 的形式组织的,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"packages"}]},{"type":"text","value":" 目录下的都是 OpenSumi 内置模块,截止 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"2.8.0"}]},{"type":"text","value":" 版本,OpenSumi 代码仓库中一共有 53 个模块,它们有些是完全独立可插拔的功能,而有些则是提供核心功能的模块。也有一部分由于早期的设计不适用于目前的架构,所以可能在未来的某个时期被移除或者合并到其他模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"核心模块介绍","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A0%B8%E5%BF%83%E6%A8%A1%E5%9D%97%E4%BB%8B%E7%BB%8D","ariaLabel":"核心模块介绍 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"核心模块介绍"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 有几十个模块,但我们开发过程中并不是每个模块都要接触的,一般情况下我们需要对以下模块有一定的了解。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"core-browser","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-browser","ariaLabel":"core browser permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core Browser"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"core-browser 定位是对 OpenSumi 前端部分的运行时管理,包括前端的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"text","value":" 以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" 机制,另外 core-browser 还负责初始化与后端的 RPC 连接,"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不可被热插拔"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"core-node","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-node","ariaLabel":"core node permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core Node"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与 core-browser 类似,core-node 定位对 OpenSumi 后端部分的运行时管理,包括了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ServerApp"}]},{"type":"text","value":" 以及后端的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" 机制,同样它"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不可被热插拔"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"monaco","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#monaco","ariaLabel":"monaco permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Monaco"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"monaco 模块主要作用是将 Monaco Editor 的 API 重新组织并导出,因为 OpenSumi 一些编辑器功能依赖 Monaco Editor 的私有 API,所以 monaco 模块中的一些 API 会经过重新组织后导出,以供其他模块使用。除此之外,monaco 模块也提供了一些 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution Point"}]},{"type":"text","value":" ,其他模块可以注册并实现、覆盖一些内置的 Service。monaco 模块"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不可被热插拔"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-service","ariaLabel":"file service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"file-service 是内置的文件服务实现,大部分情况下我们都是基于原生的文件系统,而 file-service 就是默认实现,除此之外,OpenSumi 也支持通过自定义 file-service 的方式来实现其他文件系统,例如 MemoryFS、BrowserFS 等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-tree-next","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-tree-next","ariaLabel":"file tree next permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Tree Next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件树的默认实现,依赖 file-service 来进行文件树的读取、列表展示等功能。除此之外,file tree 会读取来自 decorations 模块注册的「装饰」来显示文件的状态,例如在 Git 中该文件是否修改等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"terminal-next","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#terminal-next","ariaLabel":"terminal next permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Terminal Next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"终端功能的实现,包含前端渲染部分与后端的 Shell 进程管理。终端模块提供了独立的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TerminalNetworkContribution"}]},{"type":"text","value":" 贡献点,支持通过自定义外部的网络通道(WebSocket/Socket)来与后端 Shell 进程连接。同时它还提供了 VS Code Terminal 相关 API。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"opensumi-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#opensumi-extension","ariaLabel":"opensumi extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"OpenSumi Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"extension 是 OpenSumi 核心的插件系统实现,包括了前端视图插件、Node/VS Code 插件进程环境、WebWorker 插件环境等。同时也包含了所有 OpenSumi 以及兼容的 VS Code 插件 API 实现,extension 依赖了大部分功能模块,同时它可以被直接移除(但也会失去所有插件功能)。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-manager","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-manager","ariaLabel":"extension manager permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Manager"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"extension-manager 主要负责插件的安装、管理、启/禁用等功能,并且支持自定义的源。比较特殊的是,extension-manager 是唯一可以直接依赖 extension 的模块,因为安装、启用插件后需要同步插件状态并激活插件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"模块分层","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97%E5%88%86%E5%B1%82","ariaLabel":"模块分层 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块分层"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"虽然 OpenSumi 使用 Monorepo 组织代码结构,每个模块之间的「代码」关系看上去都是扁平的,但实际上模块之间的逻辑关系是分层的,例如前面提到的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" 、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-node"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"connection"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"monaco"}]},{"type":"text","value":" 等模块在大部分情况下是必不可少的,我们可以将其看作"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"底层模块"}]},{"type":"text","value":",他们无法被安全的移除或「热插拔」。而对于像 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opened-editor"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"markdown"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" 等模块,他们的职责比较单一,仅提供部分视图及功能,移除它们不会对 OpenSumi 本身产生破坏性影响,我们称之为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"功能模块"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"判断一个模块是否属于"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"底层模块"}]},{"type":"text","value":"或"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"核心模块"}]},{"type":"text","value":"的一个重要依据就是其是否能被安全的移除。如果我们接收「没有插件功能」,那么实际上 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension"}]},{"type":"text","value":" 也可以作为功能模块,这样其依赖的大多数功能模块都可以被安全的移除。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"模块列表及概述","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97%E5%88%97%E8%A1%A8%E5%8F%8A%E6%A6%82%E8%BF%B0","ariaLabel":"模块列表及概述 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块列表及概述"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── addons                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于依赖一些模块来实现可能包含副作用的功能,例如监听 file-tree 的拖放事件,并调用 file-service 的 API 来写入文件等"}]},{"type":"text","value":"\n├── comments                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于实现内置的 Code Review 评论功能,提供了标准的 VS Code Comments API 实现"}]},{"type":"text","value":"\n├── components                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 各个模块共用的一系列基础组件"}]},{"type":"text","value":"\n├── connection                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于实现 Web 及 Electron 端的底层 RPC 框架以及对应的连接管理"}]},{"type":"text","value":"\n├── core-browser                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Web 端功能的核心框架,包括整个 OpenSumi 的 ClientApp 及生命周期实现"}]},{"type":"text","value":"\n├── core-common                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 包含了一些基础类型,例如可能被许多模块依赖的内置 Contribution"}]},{"type":"text","value":"\n├── core-electron-main            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 包含了 Electron 端主进程的相关基础功能"}]},{"type":"text","value":"\n├── core-node                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Node 端功能的核心框架,包括 OpenSumi 的 ServerApp 及生命周期实现"}]},{"type":"text","value":"\n├── debug                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Debugger 功能模块,实现了标准的 Debug Adapter Protocol 接口,并提供对应的 VS Code API 实现"}]},{"type":"text","value":"\n├── decoration                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于管理和注册除编辑器之外的一些装饰,例如文件树视图中对于 Git 状态的装饰"}]},{"type":"text","value":"\n├── editor                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 对 Monaco Editor 的上层封装模块,提供了包括编辑器、编辑器组操作及相关管理功能"}]},{"type":"text","value":"\n├── electron-basic                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Electron 端的基础定制功能,包含了例如 Welcome 界面的基础实现"}]},{"type":"text","value":"\n├── explorer                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于为 FileTree 提供基础的视图容器,待废弃"}]},{"type":"text","value":"\n├── express-file-server           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 内置的静态资源服务器,主要提供例如插件资源读取等功能"}]},{"type":"text","value":"\n├── extension-manager             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的插件安装、管理等功能"}]},{"type":"text","value":"\n├── extension-storage             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于管理插件相关的存储,提供了 Storage 相关的 VS Code API"}]},{"type":"text","value":"\n├── file-scheme                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 提供对 file:// 协议的文件处理操作,例如前端使用何种视图来展示文件,以及后端如何进行文件保存等操作"}]},{"type":"text","value":"\n├── file-search                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 文件搜索服务,基于 vscode-ripgrep 实现的文件搜索(非内容)"}]},{"type":"text","value":"\n├── file-service                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 文件服务的抽象,集成时可以注册自定义的文件处理服务,并且内置了基于原生 FS 的文件服务"}]},{"type":"text","value":"\n├── file-tree-next                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 文件树实现"}]},{"type":"text","value":"\n├── i18n                          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的 i18n 功能及语言包"}]},{"type":"text","value":"\n├── extension             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 的插件系统实现,包括插件运行时及插件 API 实现"}]},{"type":"text","value":"\n├── keymaps                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 快捷键功能实现"}]},{"type":"text","value":"\n├── logs-core                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的 logger 实现"}]},{"type":"text","value":"\n├── main-layout                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 主界面的框架实现,可以基于 Layout 做高自由度的定制"}]},{"type":"text","value":"\n├── markdown                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的 Markdown 文件预览功能"}]},{"type":"text","value":"\n├── markers                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 问题面板实现,基于 LSP 提供的诊断信息并应用到编辑器,提供了标准的 VS Code Diagnostic API 实现"}]},{"type":"text","value":"\n├── menu-bar                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的菜单栏实现,在 Web 端使用基于 DOM 的菜单,而 Electron 端使用原生菜单"}]},{"type":"text","value":"\n├── monaco                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 对于 Monaco Editor 的引用及包装,提供了 Contribution,以便其他模块(Editor)注册或覆盖一些内置的 Service"}]},{"type":"text","value":"\n├── monaco-enhance                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 基于 Monaco 的一些上层封装,提供了一些基础的 ZoneWidget、OverlayWidget 等小组件"}]},{"type":"text","value":"\n├── opened-editor                 "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 「打开的编辑器」功能实现"}]},{"type":"text","value":"\n├── outline                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 「大纲」功能实现,基于 LSP 的符号接口,提供了基于 TreeView 的符号跳转等功能"}]},{"type":"text","value":"\n├── output                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 输出功能实现,并提供标准的 VS Code Output API"}]},{"type":"text","value":"\n├── overlay                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 内置的浮层功能实现,例如 message、notification、modal 等"}]},{"type":"text","value":"\n├── preferences                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 设置面板及功能的实现"}]},{"type":"text","value":"\n├── process                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 提供便捷的子进程管理功能,是一个 Utils 模块"}]},{"type":"text","value":"\n├── quick-open                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 快速打开功能实现,OpenSumi 的快速打开使用独立的实现,与 Monaco Editor 自带的功能类似"}]},{"type":"text","value":"\n├── scm                           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Source Control 功能抽象接口,并提供了标准的 VS Code SCM API,例如 Git 插件就是基于 SCM 提供的接口实现的"}]},{"type":"text","value":"\n├── search                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 跨文件文本搜索功能实现"}]},{"type":"text","value":"\n├── startup                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 示例模块,开发状态下可以基于 startup 模块来启动 OpenSumi"}]},{"type":"text","value":"\n├── status-bar                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 状态栏功能实现,并提供标准的 VS Code StatusBar API"}]},{"type":"text","value":"\n├── storage                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 存储功能实现,主要维护 OpenSumi 内的各种缓存读写"}]},{"type":"text","value":"\n├── task                          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 任务功能实现,并提供标准的 VS Code Task API"}]},{"type":"text","value":"\n├── terminal-next                 "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 终端功能实现,并提供标准的 VS Code Terminal API"}]},{"type":"text","value":"\n├── theme                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 颜色主题与图标主题功能实现,兼容 VS Code 图标、颜色主题,提供标准的 VS Code Theme 相关 ContributionPoint"}]},{"type":"text","value":"\n├── toolbar                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 工具栏功能实现,提供 OpenSumi 扩展的 Toolbar 相关 API"}]},{"type":"text","value":"\n├── types                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 插件类型声明模块,包含 OpenSumi 兼容的全部 VS Code API 类型声明"}]},{"type":"text","value":"\n├── userstorage                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用户缓存功能实现"}]},{"type":"text","value":"\n├── variable                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 提供运行时各种「魔法变量」的管理与实现,例如在 Task 功能的配置文件中 tasks.json 中,可以通过 ${WorkspaceFolder} 来获取到当前的工作目录"}]},{"type":"text","value":"\n├── webview                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Webview 功能实现,包含多种 Webview 组件及能力,提供了标准的 VS Code Webview API"}]},{"type":"text","value":"\n├── workspace                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 工作区功能实现,用于管理当前 OpenSumi 打开的工作区,并支持多工作区功能"}]},{"type":"text","value":"\n└── workspace-edit                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 封装了工作区级别的编辑,例如撤销一个重命名时,需要同时调用 WorkspaceEdit 相关功能实现文件级别的撤销"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块"},"parent":{"relativePath":"develop/basic-design/core-modules.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/core-modules","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 的仓库代码是通过 "},{"type":"element","tagName":"a","properties":{"href":"https://www.perforce.com/blog/vcs/what-monorepo","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Monorepo"}]},{"type":"text","value":" 的形式组织的,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"packages"}]},{"type":"text","value":" 目录下的都是 OpenSumi 内置模块,截止 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"2.8.0"}]},{"type":"text","value":" 版本,OpenSumi 代码仓库中一共有 53 个模块,它们有些是完全独立可插拔的功能,而有些则是提供核心功能的模块。也有一部分由于早期的设计不适用于目前的架构,所以可能在未来的某个时期被移除或者合并到其他模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"核心模块介绍","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A0%B8%E5%BF%83%E6%A8%A1%E5%9D%97%E4%BB%8B%E7%BB%8D","ariaLabel":"核心模块介绍 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"核心模块介绍"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 有几十个模块,但我们开发过程中并不是每个模块都要接触的,一般情况下我们需要对以下模块有一定的了解。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"core-browser","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-browser","ariaLabel":"core browser permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core Browser"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"core-browser 定位是对 OpenSumi 前端部分的运行时管理,包括前端的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"text","value":" 以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" 机制,另外 core-browser 还负责初始化与后端的 RPC 连接,"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不可被热插拔"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"core-node","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-node","ariaLabel":"core node permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core Node"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与 core-browser 类似,core-node 定位对 OpenSumi 后端部分的运行时管理,包括了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ServerApp"}]},{"type":"text","value":" 以及后端的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" 机制,同样它"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不可被热插拔"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"monaco","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#monaco","ariaLabel":"monaco permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Monaco"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"monaco 模块主要作用是将 Monaco Editor 的 API 重新组织并导出,因为 OpenSumi 一些编辑器功能依赖 Monaco Editor 的私有 API,所以 monaco 模块中的一些 API 会经过重新组织后导出,以供其他模块使用。除此之外,monaco 模块也提供了一些 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contribution Point"}]},{"type":"text","value":" ,其他模块可以注册并实现、覆盖一些内置的 Service。monaco 模块"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不可被热插拔"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-service","ariaLabel":"file service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"file-service 是内置的文件服务实现,大部分情况下我们都是基于原生的文件系统,而 file-service 就是默认实现,除此之外,OpenSumi 也支持通过自定义 file-service 的方式来实现其他文件系统,例如 MemoryFS、BrowserFS 等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"file-tree-next","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#file-tree-next","ariaLabel":"file tree next permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"File Tree Next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件树的默认实现,依赖 file-service 来进行文件树的读取、列表展示等功能。除此之外,file tree 会读取来自 decorations 模块注册的「装饰」来显示文件的状态,例如在 Git 中该文件是否修改等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"terminal-next","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#terminal-next","ariaLabel":"terminal next permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Terminal Next"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"终端功能的实现,包含前端渲染部分与后端的 Shell 进程管理。终端模块提供了独立的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TerminalNetworkContribution"}]},{"type":"text","value":" 贡献点,支持通过自定义外部的网络通道(WebSocket/Socket)来与后端 Shell 进程连接。同时它还提供了 VS Code Terminal 相关 API。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"opensumi-extension","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#opensumi-extension","ariaLabel":"opensumi extension permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"OpenSumi Extension"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"extension 是 OpenSumi 核心的插件系统实现,包括了前端视图插件、Node/VS Code 插件进程环境、WebWorker 插件环境等。同时也包含了所有 OpenSumi 以及兼容的 VS Code 插件 API 实现,extension 依赖了大部分功能模块,同时它可以被直接移除(但也会失去所有插件功能)。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extension-manager","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extension-manager","ariaLabel":"extension manager permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extension Manager"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"extension-manager 主要负责插件的安装、管理、启/禁用等功能,并且支持自定义的源。比较特殊的是,extension-manager 是唯一可以直接依赖 extension 的模块,因为安装、启用插件后需要同步插件状态并激活插件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"模块分层","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97%E5%88%86%E5%B1%82","ariaLabel":"模块分层 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块分层"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"虽然 OpenSumi 使用 Monorepo 组织代码结构,每个模块之间的「代码」关系看上去都是扁平的,但实际上模块之间的逻辑关系是分层的,例如前面提到的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" 、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"core-node"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"file-service"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"connection"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"monaco"}]},{"type":"text","value":" 等模块在大部分情况下是必不可少的,我们可以将其看作"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"底层模块"}]},{"type":"text","value":",他们无法被安全的移除或「热插拔」。而对于像 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opened-editor"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"markdown"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":" 等模块,他们的职责比较单一,仅提供部分视图及功能,移除它们不会对 OpenSumi 本身产生破坏性影响,我们称之为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"功能模块"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"判断一个模块是否属于"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"底层模块"}]},{"type":"text","value":"或"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"核心模块"}]},{"type":"text","value":"的一个重要依据就是其是否能被安全的移除。如果我们接收「没有插件功能」,那么实际上 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extension"}]},{"type":"text","value":" 也可以作为功能模块,这样其依赖的大多数功能模块都可以被安全的移除。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"模块列表及概述","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97%E5%88%97%E8%A1%A8%E5%8F%8A%E6%A6%82%E8%BF%B0","ariaLabel":"模块列表及概述 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块列表及概述"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── addons                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于依赖一些模块来实现可能包含副作用的功能,例如监听 file-tree 的拖放事件,并调用 file-service 的 API 来写入文件等"}]},{"type":"text","value":"\n├── comments                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于实现内置的 Code Review 评论功能,提供了标准的 VS Code Comments API 实现"}]},{"type":"text","value":"\n├── components                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 各个模块共用的一系列基础组件"}]},{"type":"text","value":"\n├── connection                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于实现 Web 及 Electron 端的底层 RPC 框架以及对应的连接管理"}]},{"type":"text","value":"\n├── core-browser                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Web 端功能的核心框架,包括整个 OpenSumi 的 ClientApp 及生命周期实现"}]},{"type":"text","value":"\n├── core-common                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 包含了一些基础类型,例如可能被许多模块依赖的内置 Contribution"}]},{"type":"text","value":"\n├── core-electron-main            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 包含了 Electron 端主进程的相关基础功能"}]},{"type":"text","value":"\n├── core-node                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Node 端功能的核心框架,包括 OpenSumi 的 ServerApp 及生命周期实现"}]},{"type":"text","value":"\n├── debug                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Debugger 功能模块,实现了标准的 Debug Adapter Protocol 接口,并提供对应的 VS Code API 实现"}]},{"type":"text","value":"\n├── decoration                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于管理和注册除编辑器之外的一些装饰,例如文件树视图中对于 Git 状态的装饰"}]},{"type":"text","value":"\n├── editor                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 对 Monaco Editor 的上层封装模块,提供了包括编辑器、编辑器组操作及相关管理功能"}]},{"type":"text","value":"\n├── electron-basic                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Electron 端的基础定制功能,包含了例如 Welcome 界面的基础实现"}]},{"type":"text","value":"\n├── explorer                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于为 FileTree 提供基础的视图容器,待废弃"}]},{"type":"text","value":"\n├── express-file-server           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 内置的静态资源服务器,主要提供例如插件资源读取等功能"}]},{"type":"text","value":"\n├── extension-manager             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的插件安装、管理等功能"}]},{"type":"text","value":"\n├── extension-storage             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用于管理插件相关的存储,提供了 Storage 相关的 VS Code API"}]},{"type":"text","value":"\n├── file-scheme                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 提供对 file:// 协议的文件处理操作,例如前端使用何种视图来展示文件,以及后端如何进行文件保存等操作"}]},{"type":"text","value":"\n├── file-search                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 文件搜索服务,基于 vscode-ripgrep 实现的文件搜索(非内容)"}]},{"type":"text","value":"\n├── file-service                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 文件服务的抽象,集成时可以注册自定义的文件处理服务,并且内置了基于原生 FS 的文件服务"}]},{"type":"text","value":"\n├── file-tree-next                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 文件树实现"}]},{"type":"text","value":"\n├── i18n                          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的 i18n 功能及语言包"}]},{"type":"text","value":"\n├── extension             "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 的插件系统实现,包括插件运行时及插件 API 实现"}]},{"type":"text","value":"\n├── keymaps                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 快捷键功能实现"}]},{"type":"text","value":"\n├── logs-core                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的 logger 实现"}]},{"type":"text","value":"\n├── main-layout                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 主界面的框架实现,可以基于 Layout 做高自由度的定制"}]},{"type":"text","value":"\n├── markdown                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的 Markdown 文件预览功能"}]},{"type":"text","value":"\n├── markers                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 问题面板实现,基于 LSP 提供的诊断信息并应用到编辑器,提供了标准的 VS Code Diagnostic API 实现"}]},{"type":"text","value":"\n├── menu-bar                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 内置的菜单栏实现,在 Web 端使用基于 DOM 的菜单,而 Electron 端使用原生菜单"}]},{"type":"text","value":"\n├── monaco                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 对于 Monaco Editor 的引用及包装,提供了 Contribution,以便其他模块(Editor)注册或覆盖一些内置的 Service"}]},{"type":"text","value":"\n├── monaco-enhance                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 基于 Monaco 的一些上层封装,提供了一些基础的 ZoneWidget、OverlayWidget 等小组件"}]},{"type":"text","value":"\n├── opened-editor                 "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 「打开的编辑器」功能实现"}]},{"type":"text","value":"\n├── outline                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 「大纲」功能实现,基于 LSP 的符号接口,提供了基于 TreeView 的符号跳转等功能"}]},{"type":"text","value":"\n├── output                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 输出功能实现,并提供标准的 VS Code Output API"}]},{"type":"text","value":"\n├── overlay                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 内置的浮层功能实现,例如 message、notification、modal 等"}]},{"type":"text","value":"\n├── preferences                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 设置面板及功能的实现"}]},{"type":"text","value":"\n├── process                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 提供便捷的子进程管理功能,是一个 Utils 模块"}]},{"type":"text","value":"\n├── quick-open                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 快速打开功能实现,OpenSumi 的快速打开使用独立的实现,与 Monaco Editor 自带的功能类似"}]},{"type":"text","value":"\n├── scm                           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Source Control 功能抽象接口,并提供了标准的 VS Code SCM API,例如 Git 插件就是基于 SCM 提供的接口实现的"}]},{"type":"text","value":"\n├── search                        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 跨文件文本搜索功能实现"}]},{"type":"text","value":"\n├── startup                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 示例模块,开发状态下可以基于 startup 模块来启动 OpenSumi"}]},{"type":"text","value":"\n├── status-bar                    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 状态栏功能实现,并提供标准的 VS Code StatusBar API"}]},{"type":"text","value":"\n├── storage                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 存储功能实现,主要维护 OpenSumi 内的各种缓存读写"}]},{"type":"text","value":"\n├── task                          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 任务功能实现,并提供标准的 VS Code Task API"}]},{"type":"text","value":"\n├── terminal-next                 "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 终端功能实现,并提供标准的 VS Code Terminal API"}]},{"type":"text","value":"\n├── theme                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 颜色主题与图标主题功能实现,兼容 VS Code 图标、颜色主题,提供标准的 VS Code Theme 相关 ContributionPoint"}]},{"type":"text","value":"\n├── toolbar                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 工具栏功能实现,提供 OpenSumi 扩展的 Toolbar 相关 API"}]},{"type":"text","value":"\n├── types                         "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# OpenSumi 插件类型声明模块,包含 OpenSumi 兼容的全部 VS Code API 类型声明"}]},{"type":"text","value":"\n├── userstorage                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 用户缓存功能实现"}]},{"type":"text","value":"\n├── variable                      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 提供运行时各种「魔法变量」的管理与实现,例如在 Task 功能的配置文件中 tasks.json 中,可以通过 ${WorkspaceFolder} 来获取到当前的工作目录"}]},{"type":"text","value":"\n├── webview                       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Webview 功能实现,包含多种 Webview 组件及能力,提供了标准的 VS Code Webview API"}]},{"type":"text","value":"\n├── workspace                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 工作区功能实现,用于管理当前 OpenSumi 打开的工作区,并支持多工作区功能"}]},{"type":"text","value":"\n└── workspace-edit                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 封装了工作区级别的编辑,例如撤销一个重命名时,需要同时调用 WorkspaceEdit 相关功能实现文件级别的撤销"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块"},"parent":{"relativePath":"develop/basic-design/core-modules.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/basic-design/dependence-injector/page-data.json b/page-data/zh/docs/develop/basic-design/dependence-injector/page-data.json
        index dc0ae87e..e88f69b3 100644
        --- a/page-data/zh/docs/develop/basic-design/dependence-injector/page-data.json
        +++ b/page-data/zh/docs/develop/basic-design/dependence-injector/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/dependence-injector","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了让模块开发者能够专注于自己的模块,无需关注其他模块的实现细节,我们使用 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 来实现依赖的解耦。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在依赖注入的编码模式下,我们如果想使用一个模块内的服务,不再需要依赖其具体实现,而只需要依赖其显示声明的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" 即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以在模块中使用弹窗服务能力 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IDialogService"}]},{"type":"text","value":" 为例:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IDialogService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"进一步的,我们还可以通过将部分 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" 显示的声明在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":"、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":"、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 中,来实现对服务能力的非直接依赖,减少循环依赖问题。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册自定义服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9C%8D%E5%8A%A1","ariaLabel":"注册自定义服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册自定义服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 框架中,针对 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" 我们设计了各自的模块定义形式,分别为:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们在模块导出时便可以随时在上面挂载自定义服务,前端与后端模块的代码在导出内容上基本是一致的,下面以前端模块为例,注册一个自定义服务的代码如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" IDemoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'IDemoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DemoService\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useClass"}]},{"type":"text","value":" 的定义语法,常用的语法还有 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useValue"}]},{"type":"text","value":" 使用方法如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemo2Service"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里可以直接获取到 injector 实例"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 通过这种方式,我们可以为多个 Token 挂载同个实现来做到服务职责的分离"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDemo2Service"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"进一步能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%BF%9B%E4%B8%80%E6%AD%A5%E8%83%BD%E5%8A%9B","ariaLabel":"进一步能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"进一步能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"实现多例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9E%E7%8E%B0%E5%A4%9A%E4%BE%8B","ariaLabel":"实现多例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"实现多例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在声明模块时,我们可以通过在模块的依赖注入配置中传入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{ multiple: true }"}]},{"type":"text","value":" 来让服务的实现变为多例,即每次通过 DI 获取到的服务都是重新初始化出来的实例,实例代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" multiple"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"创建子容器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9B%E5%BB%BA%E5%AD%90%E5%AE%B9%E5%99%A8","ariaLabel":"创建子容器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"创建子容器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 创建子容器的能力,我们还可以通过直接获取 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Injector"}]},{"type":"text","value":" 示例来实现自定义多例等丰富多彩的功能。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"INJECTOR_TOKEN"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injector "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" IDemoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'IDemoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" child "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useValue"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Hello "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"INJECTOR_TOKEN"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" demoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" DemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"分类服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%86%E7%B1%BB%E6%9C%8D%E5%8A%A1","ariaLabel":"分类服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"分类服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过在创建 DI 子容器中为服务注册声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":",我们就可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":" 参数来实现对不同分类下服务的调用,通常我们用于一些需要有特定分类的服务调用上,如在配置模块中,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":" 对同一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" 注册了三个不同的实现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"injectFolderPreferenceProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"inject"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderFactory"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" configurations "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceConfigurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" sectionName "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" configurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getName"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"configUri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" child "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              useValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" options\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            dropdownForTag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            tag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sectionName\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 当传入为配置文件时,如settings.json, 获取Setting"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"configurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isConfigUri"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"configUri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProvider\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 当传入为其他文件时,如launch.json"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 需设置对应的FolderPreferenceProvider 及其对应的 FolderPreferenceProviderOptions 依赖"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里的FolderPreferenceProvider获取必须为多例,因为工作区模式下可能存在多个配置文件"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          tag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sectionName"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          multiple"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"详细实现见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/develop/packages/preferences/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"preferences/src/browser/index.ts"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多能力,请自行查阅 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 文档。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入"},"parent":{"relativePath":"develop/basic-design/dependence-injector.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/dependence-injector","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了让模块开发者能够专注于自己的模块,无需关注其他模块的实现细节,我们使用 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 来实现依赖的解耦。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在依赖注入的编码模式下,我们如果想使用一个模块内的服务,不再需要依赖其具体实现,而只需要依赖其显示声明的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" 即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以在模块中使用弹窗服务能力 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IDialogService"}]},{"type":"text","value":" 为例:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IDialogService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"进一步的,我们还可以通过将部分 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" 显示的声明在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":"、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":"、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 中,来实现对服务能力的非直接依赖,减少循环依赖问题。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册自定义服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9C%8D%E5%8A%A1","ariaLabel":"注册自定义服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册自定义服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 框架中,针对 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" 我们设计了各自的模块定义形式,分别为:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们在模块导出时便可以随时在上面挂载自定义服务,前端与后端模块的代码在导出内容上基本是一致的,下面以前端模块为例,注册一个自定义服务的代码如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" IDemoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'IDemoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DemoService\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useClass"}]},{"type":"text","value":" 的定义语法,常用的语法还有 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useValue"}]},{"type":"text","value":" 使用方法如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemo2Service"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里可以直接获取到 injector 实例"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 通过这种方式,我们可以为多个 Token 挂载同个实现来做到服务职责的分离"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDemo2Service"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"进一步能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%BF%9B%E4%B8%80%E6%AD%A5%E8%83%BD%E5%8A%9B","ariaLabel":"进一步能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"进一步能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"实现多例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9E%E7%8E%B0%E5%A4%9A%E4%BE%8B","ariaLabel":"实现多例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"实现多例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在声明模块时,我们可以通过在模块的依赖注入配置中传入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{ multiple: true }"}]},{"type":"text","value":" 来让服务的实现变为多例,即每次通过 DI 获取到的服务都是重新初始化出来的实例,实例代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" multiple"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"创建子容器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9B%E5%BB%BA%E5%AD%90%E5%AE%B9%E5%99%A8","ariaLabel":"创建子容器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"创建子容器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 创建子容器的能力,我们还可以通过直接获取 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Injector"}]},{"type":"text","value":" 示例来实现自定义多例等丰富多彩的功能。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"INJECTOR_TOKEN"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injector "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" IDemoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'IDemoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" child "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useValue"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Hello "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"INJECTOR_TOKEN"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" injector"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" demoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" DemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"分类服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%86%E7%B1%BB%E6%9C%8D%E5%8A%A1","ariaLabel":"分类服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"分类服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过在创建 DI 子容器中为服务注册声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":",我们就可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":" 参数来实现对不同分类下服务的调用,通常我们用于一些需要有特定分类的服务调用上,如在配置模块中,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tag"}]},{"type":"text","value":" 对同一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token"}]},{"type":"text","value":" 注册了三个不同的实现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"injectFolderPreferenceProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"inject"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Injector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderFactory"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"useFactory"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" configurations "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceConfigurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" sectionName "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" configurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getName"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"configUri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" child "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" inject"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createChild"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProviderOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              useValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" options\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            dropdownForTag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            tag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sectionName\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 当传入为配置文件时,如settings.json, 获取Setting"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"configurations"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isConfigUri"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"configUri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FolderPreferenceProvider\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 当传入为其他文件时,如launch.json"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 需设置对应的FolderPreferenceProvider 及其对应的 FolderPreferenceProviderOptions 依赖"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里的FolderPreferenceProvider获取必须为多例,因为工作区模式下可能存在多个配置文件"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" child"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"FolderPreferenceProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          tag"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sectionName"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          multiple"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"详细实现见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/develop/packages/preferences/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"preferences/src/browser/index.ts"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多能力,请自行查阅 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/di","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 文档。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入"},"parent":{"relativePath":"develop/basic-design/dependence-injector.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/basic-design/extension-mechanism/page-data.json b/page-data/zh/docs/develop/basic-design/extension-mechanism/page-data.json
        index a1ad72c4..73d10d1d 100644
        --- a/page-data/zh/docs/develop/basic-design/extension-mechanism/page-data.json
        +++ b/page-data/zh/docs/develop/basic-design/extension-mechanism/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/extension-mechanism","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件系统是 VS Code 插件的超集,除了兼容 VS Code 官方的 API 之外,我们还有自己扩展的一些插件 API,以及包括前端、WebWorker 的插件等。本文主要介绍 OpenSumi 插件的基本原理与 API 实现流程。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"基本原理","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86","ariaLabel":"基本原理 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基本原理"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01anYrzq1Kcm1vW2Vkk_!!6000000001185-2-tps-2220-1485.png","alt":"OpenSumi Extension"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如图中所示,整个插件系统涉及到前端 UI、Web Worker、后端主进程,插件进程四个环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件可以有 3 个入口,分别是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" 、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browserMain"}]},{"type":"text","value":" 以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workerMain"}]},{"type":"text","value":",这三个入口都是可选的,其中 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" 是运行于上图中独立的 Node.js 进程中的插件,也具有与 VS Code 完全保持兼容的 API。我们从 main 入口的插件进程开始一步一步介绍整个插件系统的原理。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件进程-extension-node-host","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E8%BF%9B%E7%A8%8B-extension-node-host","ariaLabel":"插件进程 extension node host permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件进程 (Extension Node Host)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你了解过 VS Code 的插件系统就会知道,VS Code 插件进程是完全独立于主进程的,而 OpenSumi 的插件进程也保持了这一特性,插件进程本身是与主进程完全隔离的一个子进程,它们之间通过 Node.js 的 IPC 通信。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01ttWp3E1dludC7Qkt5_!!6000000003777-2-tps-1723-726.png","alt":""},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而插件由于全部运行于同一个进程,它们之间是可以相互访问的,这也是继承自 VS Code 的设计,例如可以通过调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.extensions.getExtension"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.extensions.all"}]},{"type":"text","value":" 来获取到其他插件的实例,甚至可以调用其他插件暴露的 API,这些都是允许的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"web-worker-插件进程-extension-worker-host","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#web-worker-%E6%8F%92%E4%BB%B6%E8%BF%9B%E7%A8%8B-extension-worker-host","ariaLabel":"web worker 插件进程 extension worker host permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Web Worker 插件进程 (Extension Worker Host)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"前文中提到的 Web Worker 插件环境可以看作是 Extension Node Host 的低配版"},{"type":"comment","value":"有没有更好的形容词,子集?精简版?"},{"type":"text","value":",这是因为在设计之初 Web Worker 插件线程只用于承担一些与 Node.js 无关的、密集计算型的任务,它的架构图大体上与 Extension Node Host 一致,只是去掉了一些强依赖 Node.js 能力的 API,例如 FS、Terminal、Task 、Debug 等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-%E6%8F%92%E4%BB%B6","ariaLabel":"browser 插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Browser 插件是 OpenSumi 特有的,也是与 VS Code 最大的差异点。Browser 插件通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributes"}]},{"type":"text","value":" 来声明注册点,代码中导出对应的 React 组件来实现的。Contributes Point 是固定的,包括左、右、底部面板,以及 Toolbar 等位置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6-api","ariaLabel":"插件 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-环境中的-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84-api","ariaLabel":"node 环境中的 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node 环境中的 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" 以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#nodeMain"}]},{"type":"text","value":" 的入口即是插件的 Node.js 环境,可以访问到 OpenSumi Node 环境的 API。\n在插件中调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import * as sumi from 'sumi'"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"const sumi = require('sumi')"}]},{"type":"text","value":" 即可访问到插件 API,这些 API 根据功能由不同的 namespace 区分。这里导入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 将可以访问到 VS Code + OpenSumi 的 API ,而如果使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import vscode from 'vscode'"}]},{"type":"text","value":" 则只能使用 VS Code 标准的 API。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"worker-环境中的-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#worker-%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84-api","ariaLabel":"worker 环境中的 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Worker 环境中的 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" 的入口即是插件的 Worker 环境,可以访问到 OpenSumi Worker 环境中的 API。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker API 支持从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-worker"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 两种模块名,这是因为很多 Worker 插件是从 Node 版本迁移而来的,保留 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 这个模块名来兼容这类插件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker API 是 Node 端 API 的子集,基本上除了与 FS、ChildProcess、Terminal 相关的 API,其他都可以运行在 Worker 中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-环境-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-%E7%8E%AF%E5%A2%83-api","ariaLabel":"browser 环境 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser 环境 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#browserMain"}]},{"type":"text","value":" 的入口即是插件的 Browser 环境,可以访问到 OpenSumi Browser 环境中的 API。\nBrowser 环境中提供的 API 较少,可以通过引用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 来调用,核心是提供了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" 来执行命令,这里的命令可以是跨进程调用,例如注册在 Node/Worker 中的命令。Browser 环境的设计原则是尽量只负责视图渲染,一些复杂的业务逻辑最好使用 Node/Worker 环境。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制"},"parent":{"relativePath":"develop/basic-design/extension-mechanism.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/extension-mechanism","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件系统是 VS Code 插件的超集,除了兼容 VS Code 官方的 API 之外,我们还有自己扩展的一些插件 API,以及包括前端、WebWorker 的插件等。本文主要介绍 OpenSumi 插件的基本原理与 API 实现流程。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"基本原理","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86","ariaLabel":"基本原理 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基本原理"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01anYrzq1Kcm1vW2Vkk_!!6000000001185-2-tps-2220-1485.png","alt":"OpenSumi Extension"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如图中所示,整个插件系统涉及到前端 UI、Web Worker、后端主进程,插件进程四个环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件可以有 3 个入口,分别是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" 、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browserMain"}]},{"type":"text","value":" 以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workerMain"}]},{"type":"text","value":",这三个入口都是可选的,其中 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" 是运行于上图中独立的 Node.js 进程中的插件,也具有与 VS Code 完全保持兼容的 API。我们从 main 入口的插件进程开始一步一步介绍整个插件系统的原理。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件进程-extension-node-host","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E8%BF%9B%E7%A8%8B-extension-node-host","ariaLabel":"插件进程 extension node host permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件进程 (Extension Node Host)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你了解过 VS Code 的插件系统就会知道,VS Code 插件进程是完全独立于主进程的,而 OpenSumi 的插件进程也保持了这一特性,插件进程本身是与主进程完全隔离的一个子进程,它们之间通过 Node.js 的 IPC 通信。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01ttWp3E1dludC7Qkt5_!!6000000003777-2-tps-1723-726.png","alt":""},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而插件由于全部运行于同一个进程,它们之间是可以相互访问的,这也是继承自 VS Code 的设计,例如可以通过调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.extensions.getExtension"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.extensions.all"}]},{"type":"text","value":" 来获取到其他插件的实例,甚至可以调用其他插件暴露的 API,这些都是允许的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"web-worker-插件进程-extension-worker-host","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#web-worker-%E6%8F%92%E4%BB%B6%E8%BF%9B%E7%A8%8B-extension-worker-host","ariaLabel":"web worker 插件进程 extension worker host permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Web Worker 插件进程 (Extension Worker Host)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"前文中提到的 Web Worker 插件环境可以看作是 Extension Node Host 的低配版"},{"type":"comment","value":"有没有更好的形容词,子集?精简版?"},{"type":"text","value":",这是因为在设计之初 Web Worker 插件线程只用于承担一些与 Node.js 无关的、密集计算型的任务,它的架构图大体上与 Extension Node Host 一致,只是去掉了一些强依赖 Node.js 能力的 API,例如 FS、Terminal、Task 、Debug 等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-%E6%8F%92%E4%BB%B6","ariaLabel":"browser 插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Browser 插件是 OpenSumi 特有的,也是与 VS Code 最大的差异点。Browser 插件通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributes"}]},{"type":"text","value":" 来声明注册点,代码中导出对应的 React 组件来实现的。Contributes Point 是固定的,包括左、右、底部面板,以及 Toolbar 等位置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6-api","ariaLabel":"插件 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-环境中的-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84-api","ariaLabel":"node 环境中的 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node 环境中的 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" 以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#nodeMain"}]},{"type":"text","value":" 的入口即是插件的 Node.js 环境,可以访问到 OpenSumi Node 环境的 API。\n在插件中调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import * as sumi from 'sumi'"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"const sumi = require('sumi')"}]},{"type":"text","value":" 即可访问到插件 API,这些 API 根据功能由不同的 namespace 区分。这里导入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 将可以访问到 VS Code + OpenSumi 的 API ,而如果使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import vscode from 'vscode'"}]},{"type":"text","value":" 则只能使用 VS Code 标准的 API。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"worker-环境中的-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#worker-%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84-api","ariaLabel":"worker 环境中的 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Worker 环境中的 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" 的入口即是插件的 Worker 环境,可以访问到 OpenSumi Worker 环境中的 API。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker API 支持从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-worker"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 两种模块名,这是因为很多 Worker 插件是从 Node 版本迁移而来的,保留 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 这个模块名来兼容这类插件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker API 是 Node 端 API 的子集,基本上除了与 FS、ChildProcess、Terminal 相关的 API,其他都可以运行在 Worker 中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-环境-api","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-%E7%8E%AF%E5%A2%83-api","ariaLabel":"browser 环境 api permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser 环境 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#browserMain"}]},{"type":"text","value":" 的入口即是插件的 Browser 环境,可以访问到 OpenSumi Browser 环境中的 API。\nBrowser 环境中提供的 API 较少,可以通过引用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 来调用,核心是提供了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" 来执行命令,这里的命令可以是跨进程调用,例如注册在 Node/Worker 中的命令。Browser 环境的设计原则是尽量只负责视图渲染,一些复杂的业务逻辑最好使用 Node/Worker 环境。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制"},"parent":{"relativePath":"develop/basic-design/extension-mechanism.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/basic-design/lifecycle/page-data.json b/page-data/zh/docs/develop/basic-design/lifecycle/page-data.json
        index b452cd20..cb13fe1f 100644
        --- a/page-data/zh/docs/develop/basic-design/lifecycle/page-data.json
        +++ b/page-data/zh/docs/develop/basic-design/lifecycle/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/lifecycle","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"element","tagName":"div","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"a","properties":{"href":"../../integrate/quick-start/web"},"children":[{"type":"text","value":"快速开始"}]},{"type":"text","value":" 中,我们实例化了一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"text","value":" ,调用其 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"start"}]},{"type":"text","value":" 方法即可启动 OpenSumi。"}]},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" app "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/*..options*/"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\napp"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"start"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"start 方法的流程比较简单直观,它主要负责以下工作:"}]},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"创建前后端连接,对于 Web ,将使用 Websocket,对于 Electron 端,则使用 IPC 通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"初始化 ApplicationService, 用于缓存一些系统级的状态,如当前 OpenSumi 后端运行的 OS 等"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"执行所有的 "},{"type":"element","tagName":"a","properties":{"href":"./contribution-point"},"children":[{"type":"text","value":"贡献点"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"initialize"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"onStart"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"onDidStart"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"渲染主界面"}]},{"type":"text","value":"\n"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这里的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributions"}]},{"type":"text","value":" 实际上就是一系列的生命周期方法,它们通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributions"}]},{"type":"text","value":" 机制中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" 串联起来,会在 OpenSumi 运行过程中不同阶段调用。除了上述 start 中的生命周期方法之外,还有关闭窗口、连接变化等相关的方法,本文会详细介绍这些生命周期以及其使用方式。"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01qpr3WB1iOcZNLbrcu_!!6000000004403-55-tps-3006-1224.svg","alt":"lifecycle"},"children":[]}]},{"type":"element","tagName":"h2","properties":{"id":"initialize","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#initialize","ariaLabel":"initialize permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"initialize"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"initialize 是初始化整个应用的阶段,一般来说比较核心的功能会在这个阶段做一些初始化操作,例如读取一些本地的缓存以便主界面渲染后快速实例化一些服务。此外为了加快可交互时间,initialize 阶段会启动插件进程,并执行一系列插件贡献点的注册操作。"}]},{"type":"element","tagName":"h2","properties":{"id":"render","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#render","ariaLabel":"render permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"render"}]},{"type":"comment","value":" 未发布的版本中 renderApp 会被调整到 initialize 之前,在此之前文档先保持原状 "},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"renderApp 这部分负责渲染整个应用的主框架,核心是调用 ReactDOM 的 render 方法来渲染主界面,与一般应用不同的是,OpenSumi 的视图部分可以拖拽改变顺序、尺寸,同时也支持通过集成、插件等方式贡献新的视图界面。"}]},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"renderApp 将会在下个版本调整顺序到 initialize 之前"}]},{"type":"text","value":"\n"}]},{"type":"element","tagName":"h2","properties":{"id":"onstart","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onstart","ariaLabel":"onstart permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onStart"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"onStart 在主界面渲染后执行,此时可以访问到 DOM ,一般来说可以在 onStart 阶段进行一些事件监听等操作,另外一些非首屏可见的功能也可以放在 onStart 里,起到延迟执行的作用。"}]},{"type":"element","tagName":"h2","properties":{"id":"ondidstart","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ondidstart","ariaLabel":"ondidstart permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onDidStart"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"整个应用加载完成,核心功能已经可用(除插件外),此时 IDE 的基础功能应该是完备的。"}]},{"type":"element","tagName":"h2","properties":{"id":"onwillstop","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onwillstop","ariaLabel":"onwillstop permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onWillStop"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"onWillStop 主要作用于 Electron 端,在窗口触发关闭前执行一些回收以及确认操作,例如当存在未保存文件时,弹窗询问用户是否保存后再关闭。"}]},{"type":"element","tagName":"h2","properties":{"id":"onstop","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onstop","ariaLabel":"onstop permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onStop"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"onStop 同样主要作用于 Electron 端,在 onWillStop 之后,用户确认可以关闭窗口时执行。"}]},{"type":"element","tagName":"h2","properties":{"id":"ondisposesideeffects","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ondisposesideeffects","ariaLabel":"ondisposesideeffects permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onDisposeSideEffects"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与 onStop 触发时机类似,但 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDisposeSideEffects"}]},{"type":"text","value":" 是比较特殊的一类生命周期,当 IDE 被作为一个组件时,可能存在不刷新页面,单纯卸载整个 IDE 的情况,此时需要将所有 IDE 中的副作用清除,通过主动调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clientApp.dispose"}]},{"type":"text","value":" 方法即可触发。"}]},{"type":"element","tagName":"h2","properties":{"id":"onreconnect","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onreconnect","ariaLabel":"onreconnect permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onReconnect"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前连接断开,同时重连成功后自动触发,再次连接后部分模块需要重新初始化(可能存在断开时文件、缓存被破坏,需要重新初始化)的情况。"}]}]},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期"},"parent":{"relativePath":"develop/basic-design/lifecycle.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/basic-design/lifecycle","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"element","tagName":"div","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"a","properties":{"href":"../../integrate/quick-start/web"},"children":[{"type":"text","value":"快速开始"}]},{"type":"text","value":" 中,我们实例化了一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"text","value":" ,调用其 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"start"}]},{"type":"text","value":" 方法即可启动 OpenSumi。"}]},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" app "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/*..options*/"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\napp"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"start"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"start 方法的流程比较简单直观,它主要负责以下工作:"}]},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"创建前后端连接,对于 Web ,将使用 Websocket,对于 Electron 端,则使用 IPC 通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"初始化 ApplicationService, 用于缓存一些系统级的状态,如当前 OpenSumi 后端运行的 OS 等"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"执行所有的 "},{"type":"element","tagName":"a","properties":{"href":"./contribution-point"},"children":[{"type":"text","value":"贡献点"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"initialize"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"onStart"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"onDidStart"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"渲染主界面"}]},{"type":"text","value":"\n"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这里的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributions"}]},{"type":"text","value":" 实际上就是一系列的生命周期方法,它们通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Contributions"}]},{"type":"text","value":" 机制中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientAppContribution"}]},{"type":"text","value":" 串联起来,会在 OpenSumi 运行过程中不同阶段调用。除了上述 start 中的生命周期方法之外,还有关闭窗口、连接变化等相关的方法,本文会详细介绍这些生命周期以及其使用方式。"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01qpr3WB1iOcZNLbrcu_!!6000000004403-55-tps-3006-1224.svg","alt":"lifecycle"},"children":[]}]},{"type":"element","tagName":"h2","properties":{"id":"initialize","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#initialize","ariaLabel":"initialize permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"initialize"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"initialize 是初始化整个应用的阶段,一般来说比较核心的功能会在这个阶段做一些初始化操作,例如读取一些本地的缓存以便主界面渲染后快速实例化一些服务。此外为了加快可交互时间,initialize 阶段会启动插件进程,并执行一系列插件贡献点的注册操作。"}]},{"type":"element","tagName":"h2","properties":{"id":"render","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#render","ariaLabel":"render permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"render"}]},{"type":"comment","value":" 未发布的版本中 renderApp 会被调整到 initialize 之前,在此之前文档先保持原状 "},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"renderApp 这部分负责渲染整个应用的主框架,核心是调用 ReactDOM 的 render 方法来渲染主界面,与一般应用不同的是,OpenSumi 的视图部分可以拖拽改变顺序、尺寸,同时也支持通过集成、插件等方式贡献新的视图界面。"}]},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"renderApp 将会在下个版本调整顺序到 initialize 之前"}]},{"type":"text","value":"\n"}]},{"type":"element","tagName":"h2","properties":{"id":"onstart","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onstart","ariaLabel":"onstart permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onStart"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"onStart 在主界面渲染后执行,此时可以访问到 DOM ,一般来说可以在 onStart 阶段进行一些事件监听等操作,另外一些非首屏可见的功能也可以放在 onStart 里,起到延迟执行的作用。"}]},{"type":"element","tagName":"h2","properties":{"id":"ondidstart","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ondidstart","ariaLabel":"ondidstart permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onDidStart"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"整个应用加载完成,核心功能已经可用(除插件外),此时 IDE 的基础功能应该是完备的。"}]},{"type":"element","tagName":"h2","properties":{"id":"onwillstop","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onwillstop","ariaLabel":"onwillstop permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onWillStop"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"onWillStop 主要作用于 Electron 端,在窗口触发关闭前执行一些回收以及确认操作,例如当存在未保存文件时,弹窗询问用户是否保存后再关闭。"}]},{"type":"element","tagName":"h2","properties":{"id":"onstop","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onstop","ariaLabel":"onstop permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onStop"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"onStop 同样主要作用于 Electron 端,在 onWillStop 之后,用户确认可以关闭窗口时执行。"}]},{"type":"element","tagName":"h2","properties":{"id":"ondisposesideeffects","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ondisposesideeffects","ariaLabel":"ondisposesideeffects permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onDisposeSideEffects"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与 onStop 触发时机类似,但 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDisposeSideEffects"}]},{"type":"text","value":" 是比较特殊的一类生命周期,当 IDE 被作为一个组件时,可能存在不刷新页面,单纯卸载整个 IDE 的情况,此时需要将所有 IDE 中的副作用清除,通过主动调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clientApp.dispose"}]},{"type":"text","value":" 方法即可触发。"}]},{"type":"element","tagName":"h2","properties":{"id":"onreconnect","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#onreconnect","ariaLabel":"onreconnect permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"onReconnect"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前连接断开,同时重连成功后自动触发,再次连接后部分模块需要重新初始化(可能存在断开时文件、缓存被破坏,需要重新初始化)的情况。"}]}]},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期"},"parent":{"relativePath":"develop/basic-design/lifecycle.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/how-to-contribute/page-data.json b/page-data/zh/docs/develop/how-to-contribute/page-data.json
        index 22f4b4e7..0b81e997 100644
        --- a/page-data/zh/docs/develop/how-to-contribute/page-data.json
        +++ b/page-data/zh/docs/develop/how-to-contribute/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/how-to-contribute","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般而言,你有许多方式为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" 代码建设出力,例如:写下一个你发现的 Bug 的现象及复现路径到 Issue 区反馈,提交一个 PR (Pull Requests),又或者是单纯对某个功能提交一个建议等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于标注了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PR Welcome"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"issue"}]},{"type":"text","value":" 是提交你第一个 PR 最佳的实践案例,如果你在过程中有任何疑问,也可以随时在评论区 @ 任何一位项目成员进行咨询。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开发环境准备","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87","ariaLabel":"开发环境准备 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开发环境准备"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这里的系统工具安装方式参考了 VS Code 的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode/wiki/How-to-Contribute","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"How-to-Contribute"}]},{"type":"text","value":" 文档进行翻译,可以直接查看该文档。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在开发代码前你需要安装必要的一些开发工具,克隆我们的项目代码 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":",并且通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" 安装依赖。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于长城防火墙的缘故,使用 npm 官方源会导致下载安装比较缓慢,建议在开始前将你的 npm 镜像切换至 "},{"type":"element","tagName":"a","properties":{"href":"https://npmmirror.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"npmmirror 中国镜像站"}]},{"type":"text","value":"(或安装一个 npm 镜像切换工具用于快速切换,如 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/nrm","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nrm"}]},{"type":"text","value":")。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"手动设置方式如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 这会修改你的 ~/.yarnrc.yml 文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" config "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"set"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-H"}]},{"type":"text","value":" npmRegistryServer "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"https://registry.npmmirror.com\""}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可能需要下面一些开发工具:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://git-scm.com","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Git"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://nodejs.org/en/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Node.JS"}]},{"type":"text","value":", 版本号 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":">= 12.x"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"<= 14.x"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.python.org/downloads/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Python"}]},{"type":"text","value":" (node-gyp 库的前置依赖; 查看 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp readme"}]},{"type":"text","value":" 找到当前支持的合适版本)\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"注意:"}]},{"type":"text","value":" Windows 用户通过安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"windows-build-tools"}]},{"type":"text","value":" 的 npm 模块将会自动安装 Python,可以通过这种方式进行快速安装。(见下方)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"一个适合你系统的 C/C++ 编译工具:\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"macOS"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"安装 "},{"type":"element","tagName":"a","properties":{"href":"https://developer.apple.com/xcode/downloads/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Xcode"}]},{"type":"text","value":" 及其命令行工具将会自动安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gcc"}]},{"type":"text","value":",该安装过程依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"make"}]},{"type":"text","value":" 工具链\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"xcode-select --install"}]},{"type":"text","value":" 安装命令行工具"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Windows 10/11"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"安装 Windows Build Tools:\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如果你是通过 "},{"type":"element","tagName":"a","properties":{"href":"https://nodejs.org/en/download/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Node.JS"}]},{"type":"text","value":" 提供的 Node 安装器安装的并确保你安装了原生模块工具,环境将会是可以正常使用的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如果你是通过 Node 版本管理脚本,如 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/coreybutler/nvm-windows","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nvm"}]},{"type":"text","value":" 或者 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/jasongin/nvs","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nvs"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"安装当前版本对应的 Python 版本 "},{"type":"element","tagName":"a","properties":{"href":"https://docs.python.org/3/using/windows.html#the-microsoft-store-package","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Microsoft Store Package"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Visual C++ Build Environment"}]},{"type":"text","value":": 访问并安装 "},{"type":"element","tagName":"a","properties":{"href":"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=BuildTools","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Visual Studio Build Tools"}]},{"type":"text","value":" 或者 "},{"type":"element","tagName":"a","properties":{"href":"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Visual Studio Community Edition"}]},{"type":"text","value":"。最小化的安装模式是只安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Desktop Development with C++"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"打开命令行执行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm config set msvs_version 2019"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"注意:确保你本地的 PATH 中只包含 ASCII 字符,否则可能会导致 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp/issues/297","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp usage problems (nodejs/node-gyp/issues#297)"}]},{"type":"text","value":" 问题,同时当前暂不支持更低版本 Windows 环境下对项目的构建及调试。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"构建和运行","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9E%84%E5%BB%BA%E5%92%8C%E8%BF%90%E8%A1%8C","ariaLabel":"构建和运行 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"构建和运行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你想了解如何运行 OpenSumi 或者想调试一个 Issue,你需要在本地获取代码,构建,然后运行它。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"获取代码","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%8E%B7%E5%8F%96%E4%BB%A3%E7%A0%81","ariaLabel":"获取代码 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"获取代码"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"第一步,你需要先 Fork 一份 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" 仓库副本,然后再将其克隆到本地:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone https://github.com/"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<<<"}]},{"type":"text","value":"your-github-account"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"/core.git"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通常你需要在修改或提交代码前提前同步一下最新的分支代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" core\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" checkout main\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" pull https://github.com/opensumi/core.git main"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"处理完代码冲突,提交代码到你的仓库下,然后就可以随时到 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/pulls","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":" 提交你的 PR。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注意:默认 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":" 下还包含了不少 GitHub Actions,如果你不想执行这些 Actions,你可以在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://github.com/<>/core/settings/actions"}]},{"type":"text","value":" 下关闭掉对应 Actions。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"构建","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9E%84%E5%BB%BA","ariaLabel":"构建 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"构建"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" core\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 注意,如果网络原因你无法下载 Electron 的二进制文件(如你位于中国大陆境内)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 请参考 electron 官方文档设置国内镜像:https://www.electronjs.org/zh/docs/latest/tutorial/installation#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%95%9C%E5%83%8F%E5%92%8C%E7%BC%93%E5%AD%98"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 或者设置环境变量 `ELECTRON_SKIP_BINARY_DOWNLOAD=1` 以跳过二进制文件的下载"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" run init"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"处理-nodejs-原生模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A4%84%E7%90%86-nodejs-%E5%8E%9F%E7%94%9F%E6%A8%A1%E5%9D%97","ariaLabel":"处理 nodejs 原生模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"处理 Nodejs 原生模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在实际开发过程中,你可能会遇到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" 等依赖由于 NodeJS 版本切换导致失效的问题,你可以在框架中运行脚本对原生依赖进行重新构建。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"sh"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-sh"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-sh"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" rebuild:node"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"运行","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%BF%90%E8%A1%8C","ariaLabel":"运行 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"运行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"初始化完成后,你便可以通过下面命令直接运行 Web 版本,并同时启用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Hot Reload"}]},{"type":"text","value":" 除了插件进程外的修改都能够实时在 Web 中看到修改效果。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"默认情况下,框架会将项目下的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tools/workspace"}]},{"type":"text","value":" 目录作为工作区目录展现,你也可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MY_WORKSPACE="}]},{"type":"text","value":" 指定路径的方式打开 OpenSumi,如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","assign-left","variable"]},"children":[{"type":"text","value":"MY_WORKSPACE"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"workspace_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01eP6aZU1al34XVd38l_!!6000000003369-2-tps-2842-1714.png","alt":"perview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"调试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%B0%83%E8%AF%95","ariaLabel":"调试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 运行时存在多个进程,你需要确定你要调试的具体进程,才能针对性进行调试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-进程","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-%E8%BF%9B%E7%A8%8B","ariaLabel":"browser 进程 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser 进程"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser 进程"}]},{"type":"text","value":",你可以直接通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Chrome Developer Tools"}]},{"type":"text","value":" 进行调试(推荐),也可以通过在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 安装 "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Debugger for Chrome"}]},{"type":"text","value":" 的方式进行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser 进程"}]},{"type":"text","value":" 的断点调试。如图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01RytoAv1zgLMg9FCna_!!6000000006743-2-tps-2602-1732.png#id=YcHEw&originHeight=1732&originWidth=2602&originalType=binary&ratio=1&status=done&style=none","alt":"Browser 进程"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-进程","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-%E8%BF%9B%E7%A8%8B","ariaLabel":"node 进程 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node 进程"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node 进程"}]},{"type":"text","value":",在你通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm start"}]},{"type":"text","value":" 运行起框架后,你可以通过使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 或基于 OpenSumi 搭建的 IDE 调试面板中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Attach to BackEnd"}]},{"type":"text","value":" 的方式进行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node 进程"}]},{"type":"text","value":" 的断点调试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN014Or5e01CFOtP5rM44_!!6000000000051-2-tps-2828-1760.png#id=fYIYf&originHeight=1760&originWidth=2828&originalType=binary&ratio=1&status=done&style=none","alt":"Node 进程"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"另外的,你也可以通过调试面板的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Launch Backend"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Launch Frontend"}]},{"type":"text","value":" 分别启动 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node 进程"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser 进程"}]},{"type":"text","value":" 进行调试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件进程","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E8%BF%9B%E7%A8%8B","ariaLabel":"插件进程 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件进程"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"针对 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"插件进程"}]},{"type":"text","value":",你可以通过使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 或基于 OpenSumi 搭建的调试面板中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Attach to Extension Host"}]},{"type":"text","value":" 的方式进行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"插件进程"}]},{"type":"text","value":" 的断点调试。偶尔不太灵的情况,你也可以直接打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"chrome://inspect"}]},{"type":"text","value":" 面板进行代码调试(比较好用),通过在发现端口中填入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localhost:9889"}]},{"type":"text","value":" 便可以在框架运行后获取到调试进程进行调试,如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qr67Fb1LCxJsM9S8p_!!6000000001264-2-tps-2500-1412.png#id=MrtyW&originHeight=1412&originWidth=2500&originalType=binary&ratio=1&status=done&style=none","alt":"插件进程"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"单元测试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95","ariaLabel":"单元测试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"单元测试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Jest"}]},{"type":"text","value":" 进行单元测试,同时结合 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 中实现的 mock 能力,进行执行环境的模拟及测试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可以通过如下命令对某个模块(下面代码测试模块为 debug,即 packages 目录下的 debug 目录)的代码进行测试:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" run test:module -- "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--module"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"debug"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以通过调试面板中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Jest Current File"}]},{"type":"text","value":" 指令,对当前编辑器激活的测试文件进行断点调试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"代码规范","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83","ariaLabel":"代码规范 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"代码规范"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"直接运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn run lint"}]},{"type":"text","value":" 可对整体代码进行规范检索,同时代码提交时也会触发相应的代码格式校验。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"提交规范","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%90%E4%BA%A4%E8%A7%84%E8%8C%83","ariaLabel":"提交规范 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"提交规范"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"每个 commit 应尽量小,需要按照 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@commitlint/config-conventional#type-enum","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ng4 的提交规范"}]},{"type":"text","value":" 填写你的 commit 信息。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"举个例子,你修复了调试模块的变量获取问题,提交信息可以如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"txt"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-txt"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-txt"]},"children":[{"type":"text","value":"fix: fix variable acquisition under the debug panel"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 PR 内容,遵循 PR 填写模板即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件调试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E8%B0%83%E8%AF%95","ariaLabel":"插件调试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你希望在 OpenSumi 框架下对插件进行调试,你可以将你的本地插件以软链接的方式链接到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{代码根目录}/tools/extensions"}]},{"type":"text","value":" 目录下,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"ln"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-s"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"local_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"/"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"extension_name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"代码根目录"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"/tools/extensions/"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"extension_name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过刷新页面便可以快速进行插件功能的效果预览。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"英文拼写","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%8B%B1%E6%96%87%E6%8B%BC%E5%86%99","ariaLabel":"英文拼写 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"英文拼写"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于常见的拼写问题,我们建议你在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 或基于 OpenSumi 搭建的 IDE 下安装 "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Code Spell Checker"}]},{"type":"text","value":" 插件来避免常见的一些英文拼写问题。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"建议及反馈","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BB%BA%E8%AE%AE%E5%8F%8A%E5%8F%8D%E9%A6%88","ariaLabel":"建议及反馈 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"建议及反馈"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们很乐意接收对于 OpenSumi 框架的建议及功能需求,欢迎在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":" 提交并进行详细阐述。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码"},"parent":{"relativePath":"develop/how-to-contribute.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/how-to-contribute","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般而言,你有许多方式为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" 代码建设出力,例如:写下一个你发现的 Bug 的现象及复现路径到 Issue 区反馈,提交一个 PR (Pull Requests),又或者是单纯对某个功能提交一个建议等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于标注了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PR Welcome"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"issue"}]},{"type":"text","value":" 是提交你第一个 PR 最佳的实践案例,如果你在过程中有任何疑问,也可以随时在评论区 @ 任何一位项目成员进行咨询。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开发环境准备","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87","ariaLabel":"开发环境准备 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开发环境准备"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这里的系统工具安装方式参考了 VS Code 的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode/wiki/How-to-Contribute","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"How-to-Contribute"}]},{"type":"text","value":" 文档进行翻译,可以直接查看该文档。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在开发代码前你需要安装必要的一些开发工具,克隆我们的项目代码 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":",并且通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" 安装依赖。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于长城防火墙的缘故,使用 npm 官方源会导致下载安装比较缓慢,建议在开始前将你的 npm 镜像切换至 "},{"type":"element","tagName":"a","properties":{"href":"https://npmmirror.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"npmmirror 中国镜像站"}]},{"type":"text","value":"(或安装一个 npm 镜像切换工具用于快速切换,如 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/nrm","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nrm"}]},{"type":"text","value":")。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"手动设置方式如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 这会修改你的 ~/.yarnrc.yml 文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" config "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"set"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-H"}]},{"type":"text","value":" npmRegistryServer "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"https://registry.npmmirror.com\""}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可能需要下面一些开发工具:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://git-scm.com","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Git"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://nodejs.org/en/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Node.JS"}]},{"type":"text","value":", 版本号 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":">= 12.x"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"<= 14.x"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.python.org/downloads/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Python"}]},{"type":"text","value":" (node-gyp 库的前置依赖; 查看 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp readme"}]},{"type":"text","value":" 找到当前支持的合适版本)\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"注意:"}]},{"type":"text","value":" Windows 用户通过安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"windows-build-tools"}]},{"type":"text","value":" 的 npm 模块将会自动安装 Python,可以通过这种方式进行快速安装。(见下方)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"一个适合你系统的 C/C++ 编译工具:\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"macOS"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"安装 "},{"type":"element","tagName":"a","properties":{"href":"https://developer.apple.com/xcode/downloads/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Xcode"}]},{"type":"text","value":" 及其命令行工具将会自动安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gcc"}]},{"type":"text","value":",该安装过程依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"make"}]},{"type":"text","value":" 工具链\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"xcode-select --install"}]},{"type":"text","value":" 安装命令行工具"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Windows 10/11"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"安装 Windows Build Tools:\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如果你是通过 "},{"type":"element","tagName":"a","properties":{"href":"https://nodejs.org/en/download/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Node.JS"}]},{"type":"text","value":" 提供的 Node 安装器安装的并确保你安装了原生模块工具,环境将会是可以正常使用的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如果你是通过 Node 版本管理脚本,如 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/coreybutler/nvm-windows","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nvm"}]},{"type":"text","value":" 或者 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/jasongin/nvs","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"nvs"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"安装当前版本对应的 Python 版本 "},{"type":"element","tagName":"a","properties":{"href":"https://docs.python.org/3/using/windows.html#the-microsoft-store-package","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Microsoft Store Package"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Visual C++ Build Environment"}]},{"type":"text","value":": 访问并安装 "},{"type":"element","tagName":"a","properties":{"href":"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=BuildTools","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Visual Studio Build Tools"}]},{"type":"text","value":" 或者 "},{"type":"element","tagName":"a","properties":{"href":"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Visual Studio Community Edition"}]},{"type":"text","value":"。最小化的安装模式是只安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Desktop Development with C++"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"打开命令行执行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm config set msvs_version 2019"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"注意:确保你本地的 PATH 中只包含 ASCII 字符,否则可能会导致 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp/issues/297","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp usage problems (nodejs/node-gyp/issues#297)"}]},{"type":"text","value":" 问题,同时当前暂不支持更低版本 Windows 环境下对项目的构建及调试。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"构建和运行","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9E%84%E5%BB%BA%E5%92%8C%E8%BF%90%E8%A1%8C","ariaLabel":"构建和运行 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"构建和运行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你想了解如何运行 OpenSumi 或者想调试一个 Issue,你需要在本地获取代码,构建,然后运行它。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"获取代码","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%8E%B7%E5%8F%96%E4%BB%A3%E7%A0%81","ariaLabel":"获取代码 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"获取代码"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"第一步,你需要先 Fork 一份 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" 仓库副本,然后再将其克隆到本地:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone https://github.com/"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<<<"}]},{"type":"text","value":"your-github-account"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"/core.git"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通常你需要在修改或提交代码前提前同步一下最新的分支代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" core\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" checkout main\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" pull https://github.com/opensumi/core.git main"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"处理完代码冲突,提交代码到你的仓库下,然后就可以随时到 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/pulls","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":" 提交你的 PR。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注意:默认 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":" 下还包含了不少 GitHub Actions,如果你不想执行这些 Actions,你可以在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://github.com/<>/core/settings/actions"}]},{"type":"text","value":" 下关闭掉对应 Actions。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"构建","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9E%84%E5%BB%BA","ariaLabel":"构建 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"构建"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" core\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 注意,如果网络原因你无法下载 Electron 的二进制文件(如你位于中国大陆境内)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 请参考 electron 官方文档设置国内镜像:https://www.electronjs.org/zh/docs/latest/tutorial/installation#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%95%9C%E5%83%8F%E5%92%8C%E7%BC%93%E5%AD%98"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 或者设置环境变量 `ELECTRON_SKIP_BINARY_DOWNLOAD=1` 以跳过二进制文件的下载"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" run init"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"处理-nodejs-原生模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A4%84%E7%90%86-nodejs-%E5%8E%9F%E7%94%9F%E6%A8%A1%E5%9D%97","ariaLabel":"处理 nodejs 原生模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"处理 Nodejs 原生模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在实际开发过程中,你可能会遇到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" 等依赖由于 NodeJS 版本切换导致失效的问题,你可以在框架中运行脚本对原生依赖进行重新构建。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"sh"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-sh"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-sh"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" rebuild:node"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"运行","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%BF%90%E8%A1%8C","ariaLabel":"运行 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"运行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"初始化完成后,你便可以通过下面命令直接运行 Web 版本,并同时启用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Hot Reload"}]},{"type":"text","value":" 除了插件进程外的修改都能够实时在 Web 中看到修改效果。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"默认情况下,框架会将项目下的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tools/workspace"}]},{"type":"text","value":" 目录作为工作区目录展现,你也可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MY_WORKSPACE="}]},{"type":"text","value":" 指定路径的方式打开 OpenSumi,如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","assign-left","variable"]},"children":[{"type":"text","value":"MY_WORKSPACE"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"workspace_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01eP6aZU1al34XVd38l_!!6000000003369-2-tps-2842-1714.png","alt":"perview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"调试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%B0%83%E8%AF%95","ariaLabel":"调试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 运行时存在多个进程,你需要确定你要调试的具体进程,才能针对性进行调试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browser-进程","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-%E8%BF%9B%E7%A8%8B","ariaLabel":"browser 进程 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser 进程"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser 进程"}]},{"type":"text","value":",你可以直接通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Chrome Developer Tools"}]},{"type":"text","value":" 进行调试(推荐),也可以通过在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 安装 "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Debugger for Chrome"}]},{"type":"text","value":" 的方式进行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser 进程"}]},{"type":"text","value":" 的断点调试。如图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01RytoAv1zgLMg9FCna_!!6000000006743-2-tps-2602-1732.png#id=YcHEw&originHeight=1732&originWidth=2602&originalType=binary&ratio=1&status=done&style=none","alt":"Browser 进程"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-进程","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-%E8%BF%9B%E7%A8%8B","ariaLabel":"node 进程 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node 进程"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node 进程"}]},{"type":"text","value":",在你通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm start"}]},{"type":"text","value":" 运行起框架后,你可以通过使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 或基于 OpenSumi 搭建的 IDE 调试面板中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Attach to BackEnd"}]},{"type":"text","value":" 的方式进行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node 进程"}]},{"type":"text","value":" 的断点调试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN014Or5e01CFOtP5rM44_!!6000000000051-2-tps-2828-1760.png#id=fYIYf&originHeight=1760&originWidth=2828&originalType=binary&ratio=1&status=done&style=none","alt":"Node 进程"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"另外的,你也可以通过调试面板的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Launch Backend"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Launch Frontend"}]},{"type":"text","value":" 分别启动 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node 进程"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser 进程"}]},{"type":"text","value":" 进行调试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件进程","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E8%BF%9B%E7%A8%8B","ariaLabel":"插件进程 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件进程"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"针对 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"插件进程"}]},{"type":"text","value":",你可以通过使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 或基于 OpenSumi 搭建的调试面板中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Attach to Extension Host"}]},{"type":"text","value":" 的方式进行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"插件进程"}]},{"type":"text","value":" 的断点调试。偶尔不太灵的情况,你也可以直接打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"chrome://inspect"}]},{"type":"text","value":" 面板进行代码调试(比较好用),通过在发现端口中填入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localhost:9889"}]},{"type":"text","value":" 便可以在框架运行后获取到调试进程进行调试,如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qr67Fb1LCxJsM9S8p_!!6000000001264-2-tps-2500-1412.png#id=MrtyW&originHeight=1412&originWidth=2500&originalType=binary&ratio=1&status=done&style=none","alt":"插件进程"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"单元测试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95","ariaLabel":"单元测试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"单元测试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Jest"}]},{"type":"text","value":" 进行单元测试,同时结合 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/di"}]},{"type":"text","value":" 中实现的 mock 能力,进行执行环境的模拟及测试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可以通过如下命令对某个模块(下面代码测试模块为 debug,即 packages 目录下的 debug 目录)的代码进行测试:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" run test:module -- "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--module"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"debug"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以通过调试面板中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Jest Current File"}]},{"type":"text","value":" 指令,对当前编辑器激活的测试文件进行断点调试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"代码规范","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83","ariaLabel":"代码规范 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"代码规范"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"直接运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn run lint"}]},{"type":"text","value":" 可对整体代码进行规范检索,同时代码提交时也会触发相应的代码格式校验。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"提交规范","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%90%E4%BA%A4%E8%A7%84%E8%8C%83","ariaLabel":"提交规范 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"提交规范"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"每个 commit 应尽量小,需要按照 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@commitlint/config-conventional#type-enum","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ng4 的提交规范"}]},{"type":"text","value":" 填写你的 commit 信息。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"举个例子,你修复了调试模块的变量获取问题,提交信息可以如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"txt"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-txt"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-txt"]},"children":[{"type":"text","value":"fix: fix variable acquisition under the debug panel"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 PR 内容,遵循 PR 填写模板即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件调试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E8%B0%83%E8%AF%95","ariaLabel":"插件调试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你希望在 OpenSumi 框架下对插件进行调试,你可以将你的本地插件以软链接的方式链接到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"{代码根目录}/tools/extensions"}]},{"type":"text","value":" 目录下,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"ln"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-s"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"local_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"/"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"extension_name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"代码根目录"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"/tools/extensions/"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"extension_name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过刷新页面便可以快速进行插件功能的效果预览。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"英文拼写","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%8B%B1%E6%96%87%E6%8B%BC%E5%86%99","ariaLabel":"英文拼写 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"英文拼写"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于常见的拼写问题,我们建议你在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 或基于 OpenSumi 搭建的 IDE 下安装 "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Code Spell Checker"}]},{"type":"text","value":" 插件来避免常见的一些英文拼写问题。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"建议及反馈","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BB%BA%E8%AE%AE%E5%8F%8A%E5%8F%8D%E9%A6%88","ariaLabel":"建议及反馈 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"建议及反馈"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们很乐意接收对于 OpenSumi 框架的建议及功能需求,欢迎在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":" 提交并进行详细阐述。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码"},"parent":{"relativePath":"develop/how-to-contribute.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/how-to-design-module/page-data.json b/page-data/zh/docs/develop/how-to-design-module/page-data.json
        index baf13bc8..40753d8d 100644
        --- a/page-data/zh/docs/develop/how-to-design-module/page-data.json
        +++ b/page-data/zh/docs/develop/how-to-design-module/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/how-to-design-module","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本文主要介绍基于 OpenSumi 体系下搭建模块来拓展原生框架功能的思路,对于模块的创建及具体实践可参考我们的 "},{"type":"element","tagName":"a","properties":{"href":"./sample/overview"},"children":[{"type":"text","value":"经典案例"}]},{"type":"text","value":", 案例中有针对具体模块创建的一些基础思路及做法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"了解依赖注入","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BA%86%E8%A7%A3%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5","ariaLabel":"了解依赖注入 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"了解依赖注入"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在了解模块前,建议先看一下 "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/dependence-injector"},"children":[{"type":"text","value":"依赖注入"}]},{"type":"text","value":" 这篇文章,在 OpenSumi 中,所有的服务注册及调用都是基于这套统一的依赖注入结构进行服务的实现与调用逻辑的解耦,让框架开发者的开发能够聚焦于开发模块,实现更加独立的模块建设。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"什么是模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%80%E4%B9%88%E6%98%AF%E6%A8%A1%E5%9D%97","ariaLabel":"什么是模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"什么是模块?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般性而言,模块指的是依托 OpenSumi 框架,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" 的方式进行原生能力拓展的代码块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 层的拓展模块为例,一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" 基本定义格式如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    AnyContributions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 贡献点文件"}]},{"type":"text","value":"\n    AnyService "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册额外的服务"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"贡献点文件提供如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command(命令)"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Menu(菜单)"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keybinding(快捷键)"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ComponentView(视图)"}]},{"type":"text","value":" 等能力的注册。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而额外的一些 Service 定义"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"如何编码","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E7%BC%96%E7%A0%81","ariaLabel":"如何编码 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何编码"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在初次接触 OpenSumi 的模块编码时,我们建议你可以先看一下 OpenSumi 内是否有类型的功能或布局,再通过参照源码的方式进行相关编码工作,这将会让你事半功倍。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于模块编码,从基本需求出发,一般可以简单分为如下两类:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"基于视图的功能需求"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"基于服务能力的需求"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"基于视图的需求","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E4%BA%8E%E8%A7%86%E5%9B%BE%E7%9A%84%E9%9C%80%E6%B1%82","ariaLabel":"基于视图的需求 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基于视图的需求"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"所有视图的需求的第一步便是创建视图,而在 OpenSumi 的框架下,创建视图的步骤可以分为三步:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"注册视图模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"引入模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在特定的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Location (布局区块)"}]},{"type":"text","value":" 下使用"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Explorer"}]},{"type":"text","value":" 模块为例,我们创建一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"explorer.contribution.ts"}]},{"type":"text","value":" 文件注册一个视图容器:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// component: ExplorerComponent,  // 这里可以传入具体的渲染组件"}]},{"type":"text","value":"\n      containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在注册视图组件的时候,你也可以同时传入具体的渲染组件,这样这个视图区块将会以这个传入的组件进行渲染,如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Search"}]},{"type":"text","value":" 面板便是直接注册了相应的渲染组件,如图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01wo34Pj1YjYZj9JPkH_!!6000000003095-0-tps-200-134.jpg","alt":"Search"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而如果你想在左、右侧边栏下注册一个可容纳多视图组件的抽屉布局,则这里可以不传,然后通过其他模块中去注册视图, 如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Explorer"}]},{"type":"text","value":" 中的抽屉布局,如图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01nOueUR1ExwhcLPjvv_!!6000000000419-0-tps-200-111.jpg","alt":"Explorer"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"相应的注册方法可参考代码:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/e28ecb7eecb59e996fc92418d2ebc878456388b7/packages/file-tree-next/src/browser/file-tree-contribution.ts#L139","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"file-tree-contribution.ts#L139"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后便是在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/index.ts"}]},{"type":"text","value":" 文件中定义 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":", 如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ExplorerContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"ExplorerContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"详细代码参考:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/explorer/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"explorer/src/browser/index.ts"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"最终,你只需要在 Browser 层引入该模块,同时在对应的布局设置中引入注册的视图 ID 即可,以 "},{"type":"element","tagName":"a","properties":{"href":""},"children":[{"type":"text","value":"opensumi/ide-startup"}]},{"type":"text","value":" 项目为例:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/master/src/browser/common-modules.ts#L44","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"common-modules.ts#L44"}]},{"type":"text","value":" 引入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":", 同时,在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/master/src/browser/layout-config.ts#L7","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"layout-config.ts#L7"}]},{"type":"text","value":" 下去声明布局区块下渲染的视图 ID 即可,如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" SlotLocation "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/react-providers/slot'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" defaultConfig "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout/lib/browser/default-config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" layoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"defaultConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"right"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"上面这段代码即声明了,在 IDE 的右侧边栏区域渲染注册 ID 为 '@opensumi/ide-explorer' 的视图组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多视图布局相关介绍可参见:"},{"type":"element","tagName":"a","properties":{"href":"../integrate/universal-integrate-case/custom-view"},"children":[{"type":"text","value":"自定义视图\n"}]},{"type":"text","value":" 文档介绍。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"基于服务的需求","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E4%BA%8E%E6%9C%8D%E5%8A%A1%E7%9A%84%E9%9C%80%E6%B1%82","ariaLabel":"基于服务的需求 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基于服务的需求"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"基于视图的需求一般也会包含基于服务的需求,通常而言,在 OpenSumi 框架中提供了大量基础能力支持各种场景下的功能需求,如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"文件服务"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"弹窗服务"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"存储服务"}]},{"type":"text","value":" 等,在你需要定制相关服务能力前,可以先看看通过简单的功能组合是否可以达到期望的效果,如果不行,此时你便要考虑定制自定义的服务能力来满足你的需求了。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"命令"}]},{"type":"text","value":",菜单,快捷键,配置等服务,我们建议你通过 "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/contribution-point"},"children":[{"type":"text","value":"贡献点\n"}]},{"type":"text","value":" 的方式进行拓展。最终通过如下的基础声明使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    DemoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而对于个性化的服务能力注册,我们则建议你通过 "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/dependence-injector"},"children":[{"type":"text","value":"依赖注入"}]},{"type":"text","value":" 的方式进行拓展, 最终通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token + Service"}]},{"type":"text","value":" 的方式进行注册。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"具体的实践案例你都可以在 "},{"type":"element","tagName":"a","properties":{"href":"./sample/overview"},"children":[{"type":"text","value":"经典案例"}]},{"type":"text","value":" 中学习到。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"关于依赖的潜规则","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E4%BA%8E%E4%BE%9D%E8%B5%96%E7%9A%84%E6%BD%9C%E8%A7%84%E5%88%99","ariaLabel":"关于依赖的潜规则 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关于依赖的潜规则"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一个基础的 OpenSumi 模块,一般需要具备如下的分层结构:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".\n└── src\n│   ├── browser  # 可选\n│   ├── common\n│   └── node     # 可选\n└── webpack.config.js\n└── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们期望的依赖结构如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"text","value":" ...\n "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dependencies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-core-common\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"2.16.10\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/vscode-jsonrpc\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^8.0.0-next.2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"path-match\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^1.2.4\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"shortid\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^2.2.14\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"ws\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^7.2.0\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"devDependencies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-components\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"2.16.10\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-dev-tool\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^1.3.1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"mock-socket\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^9.0.2\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  ..."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"devDependencies"}]},{"type":"text","value":" 中放置 Browser 层及构建依赖,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"dependencies"}]},{"type":"text","value":" 放置 Node 层依赖。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"依赖结构图示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BE%9D%E8%B5%96%E7%BB%93%E6%9E%84%E5%9B%BE%E7%A4%BA","ariaLabel":"依赖结构图示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"依赖结构图示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01bFR3Nf1XPZgCyIDBM_!!6000000002916-2-tps-1586-820.png","alt":"Dependence"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而对于 OpenSumi 全局的一些依赖结构,还有如下的一些潜规则:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":" 为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" , "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-electron"}]},{"type":"text","value":" 的共同依赖"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块不直接依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":",而是通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 间接依赖"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于 Browser 资源一般有脚本进行打包构建,而 Node 资源一般需要直接依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules"}]},{"type":"text","value":" ,故我们前期设计上期望模块的 Browser 层依赖放在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DevDepedences"}]},{"type":"text","value":",而 Node 层依赖放在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dependences"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"所有模块的构建,统一依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-dev-tool"}]},{"type":"text","value":" 方式引入构建依赖,如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"typescript"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"webpack"}]},{"type":"text","value":" 等"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"基于这种目录结构,如果存在多个 Browser 模块的公共依赖,放在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 将能减少版本维护的烦恼,故 OpenSumi 中许多前后端的公共依赖会分别在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 中独立声明。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"原则上如果模块 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common"}]},{"type":"text","value":" 中只能引入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":" 中的内容,但如果该模块为纯 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" 模块,则允许从对应的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 中引入。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"自此,你便完成了对于 OpenSumi 模块的初步认识,剩下的便是不断实践,收获更多的实践经验,如果你有更多关于实践上的问题,也欢迎到 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/docs/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Issue"}]},{"type":"text","value":" 提交,我们会及时处理你的相关问题。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块"},"parent":{"relativePath":"develop/how-to-design-module.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/how-to-design-module","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本文主要介绍基于 OpenSumi 体系下搭建模块来拓展原生框架功能的思路,对于模块的创建及具体实践可参考我们的 "},{"type":"element","tagName":"a","properties":{"href":"./sample/overview"},"children":[{"type":"text","value":"经典案例"}]},{"type":"text","value":", 案例中有针对具体模块创建的一些基础思路及做法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"了解依赖注入","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BA%86%E8%A7%A3%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5","ariaLabel":"了解依赖注入 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"了解依赖注入"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在了解模块前,建议先看一下 "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/dependence-injector"},"children":[{"type":"text","value":"依赖注入"}]},{"type":"text","value":" 这篇文章,在 OpenSumi 中,所有的服务注册及调用都是基于这套统一的依赖注入结构进行服务的实现与调用逻辑的解耦,让框架开发者的开发能够聚焦于开发模块,实现更加独立的模块建设。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"什么是模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%80%E4%B9%88%E6%98%AF%E6%A8%A1%E5%9D%97","ariaLabel":"什么是模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"什么是模块?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般性而言,模块指的是依托 OpenSumi 框架,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" 的方式进行原生能力拓展的代码块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 层的拓展模块为例,一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" 基本定义格式如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    AnyContributions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 贡献点文件"}]},{"type":"text","value":"\n    AnyService "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册额外的服务"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"贡献点文件提供如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command(命令)"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Menu(菜单)"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keybinding(快捷键)"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ComponentView(视图)"}]},{"type":"text","value":" 等能力的注册。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而额外的一些 Service 定义"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"如何编码","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E7%BC%96%E7%A0%81","ariaLabel":"如何编码 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何编码"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在初次接触 OpenSumi 的模块编码时,我们建议你可以先看一下 OpenSumi 内是否有类型的功能或布局,再通过参照源码的方式进行相关编码工作,这将会让你事半功倍。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于模块编码,从基本需求出发,一般可以简单分为如下两类:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"基于视图的功能需求"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"基于服务能力的需求"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"基于视图的需求","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E4%BA%8E%E8%A7%86%E5%9B%BE%E7%9A%84%E9%9C%80%E6%B1%82","ariaLabel":"基于视图的需求 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基于视图的需求"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"所有视图的需求的第一步便是创建视图,而在 OpenSumi 的框架下,创建视图的步骤可以分为三步:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"注册视图模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"引入模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在特定的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Location (布局区块)"}]},{"type":"text","value":" 下使用"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Explorer"}]},{"type":"text","value":" 模块为例,我们创建一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"explorer.contribution.ts"}]},{"type":"text","value":" 文件注册一个视图容器:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// component: ExplorerComponent,  // 这里可以传入具体的渲染组件"}]},{"type":"text","value":"\n      containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在注册视图组件的时候,你也可以同时传入具体的渲染组件,这样这个视图区块将会以这个传入的组件进行渲染,如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Search"}]},{"type":"text","value":" 面板便是直接注册了相应的渲染组件,如图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01wo34Pj1YjYZj9JPkH_!!6000000003095-0-tps-200-134.jpg","alt":"Search"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而如果你想在左、右侧边栏下注册一个可容纳多视图组件的抽屉布局,则这里可以不传,然后通过其他模块中去注册视图, 如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Explorer"}]},{"type":"text","value":" 中的抽屉布局,如图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01nOueUR1ExwhcLPjvv_!!6000000000419-0-tps-200-111.jpg","alt":"Explorer"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"相应的注册方法可参考代码:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/e28ecb7eecb59e996fc92418d2ebc878456388b7/packages/file-tree-next/src/browser/file-tree-contribution.ts#L139","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"file-tree-contribution.ts#L139"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后便是在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/index.ts"}]},{"type":"text","value":" 文件中定义 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":", 如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ExplorerContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"ExplorerContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"详细代码参考:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/explorer/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"explorer/src/browser/index.ts"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"最终,你只需要在 Browser 层引入该模块,同时在对应的布局设置中引入注册的视图 ID 即可,以 "},{"type":"element","tagName":"a","properties":{"href":""},"children":[{"type":"text","value":"opensumi/ide-startup"}]},{"type":"text","value":" 项目为例:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/master/src/browser/common-modules.ts#L44","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"common-modules.ts#L44"}]},{"type":"text","value":" 引入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ExplorerModule"}]},{"type":"text","value":", 同时,在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/master/src/browser/layout-config.ts#L7","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"layout-config.ts#L7"}]},{"type":"text","value":" 下去声明布局区块下渲染的视图 ID 即可,如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" SlotLocation "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/react-providers/slot'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" defaultConfig "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout/lib/browser/default-config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" layoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"defaultConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"right"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"上面这段代码即声明了,在 IDE 的右侧边栏区域渲染注册 ID 为 '@opensumi/ide-explorer' 的视图组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多视图布局相关介绍可参见:"},{"type":"element","tagName":"a","properties":{"href":"../integrate/universal-integrate-case/custom-view"},"children":[{"type":"text","value":"自定义视图\n"}]},{"type":"text","value":" 文档介绍。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"基于服务的需求","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E4%BA%8E%E6%9C%8D%E5%8A%A1%E7%9A%84%E9%9C%80%E6%B1%82","ariaLabel":"基于服务的需求 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基于服务的需求"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"基于视图的需求一般也会包含基于服务的需求,通常而言,在 OpenSumi 框架中提供了大量基础能力支持各种场景下的功能需求,如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"文件服务"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"弹窗服务"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"存储服务"}]},{"type":"text","value":" 等,在你需要定制相关服务能力前,可以先看看通过简单的功能组合是否可以达到期望的效果,如果不行,此时你便要考虑定制自定义的服务能力来满足你的需求了。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"命令"}]},{"type":"text","value":",菜单,快捷键,配置等服务,我们建议你通过 "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/contribution-point"},"children":[{"type":"text","value":"贡献点\n"}]},{"type":"text","value":" 的方式进行拓展。最终通过如下的基础声明使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    DemoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而对于个性化的服务能力注册,我们则建议你通过 "},{"type":"element","tagName":"a","properties":{"href":"./basic-design/dependence-injector"},"children":[{"type":"text","value":"依赖注入"}]},{"type":"text","value":" 的方式进行拓展, 最终通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Token + Service"}]},{"type":"text","value":" 的方式进行注册。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DemoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"具体的实践案例你都可以在 "},{"type":"element","tagName":"a","properties":{"href":"./sample/overview"},"children":[{"type":"text","value":"经典案例"}]},{"type":"text","value":" 中学习到。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"关于依赖的潜规则","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E4%BA%8E%E4%BE%9D%E8%B5%96%E7%9A%84%E6%BD%9C%E8%A7%84%E5%88%99","ariaLabel":"关于依赖的潜规则 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关于依赖的潜规则"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一个基础的 OpenSumi 模块,一般需要具备如下的分层结构:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".\n└── src\n│   ├── browser  # 可选\n│   ├── common\n│   └── node     # 可选\n└── webpack.config.js\n└── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们期望的依赖结构如下所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"text","value":" ...\n "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dependencies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-core-common\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"2.16.10\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/vscode-jsonrpc\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^8.0.0-next.2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"path-match\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^1.2.4\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"shortid\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^2.2.14\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"ws\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^7.2.0\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"devDependencies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-components\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"2.16.10\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"@opensumi/ide-dev-tool\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^1.3.1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"mock-socket\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"^9.0.2\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  ..."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"devDependencies"}]},{"type":"text","value":" 中放置 Browser 层及构建依赖,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"dependencies"}]},{"type":"text","value":" 放置 Node 层依赖。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"依赖结构图示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BE%9D%E8%B5%96%E7%BB%93%E6%9E%84%E5%9B%BE%E7%A4%BA","ariaLabel":"依赖结构图示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"依赖结构图示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01bFR3Nf1XPZgCyIDBM_!!6000000002916-2-tps-1586-820.png","alt":"Dependence"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而对于 OpenSumi 全局的一些依赖结构,还有如下的一些潜规则:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":" 为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" , "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-electron"}]},{"type":"text","value":" 的共同依赖"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块不直接依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":",而是通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 间接依赖"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于 Browser 资源一般有脚本进行打包构建,而 Node 资源一般需要直接依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules"}]},{"type":"text","value":" ,故我们前期设计上期望模块的 Browser 层依赖放在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DevDepedences"}]},{"type":"text","value":",而 Node 层依赖放在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dependences"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"所有模块的构建,统一依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-dev-tool"}]},{"type":"text","value":" 方式引入构建依赖,如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"typescript"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"webpack"}]},{"type":"text","value":" 等"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"基于这种目录结构,如果存在多个 Browser 模块的公共依赖,放在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 将能减少版本维护的烦恼,故 OpenSumi 中许多前后端的公共依赖会分别在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 中独立声明。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"原则上如果模块 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common"}]},{"type":"text","value":" 中只能引入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-common"}]},{"type":"text","value":" 中的内容,但如果该模块为纯 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" 模块,则允许从对应的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 中引入。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"自此,你便完成了对于 OpenSumi 模块的初步认识,剩下的便是不断实践,收获更多的实践经验,如果你有更多关于实践上的问题,也欢迎到 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/docs/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Issue"}]},{"type":"text","value":" 提交,我们会及时处理你的相关问题。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块"},"parent":{"relativePath":"develop/how-to-design-module.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/module-apis/decoration/page-data.json b/page-data/zh/docs/develop/module-apis/decoration/page-data.json
        index ef2d9691..1f3f755d 100644
        --- a/page-data/zh/docs/develop/module-apis/decoration/page-data.json
        +++ b/page-data/zh/docs/develop/module-apis/decoration/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/decoration","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"FileDecoration 模块主要用来注册/管理/分发跟文件名相关 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Decoration"}]},{"type":"text","value":" 服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"基础概念","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5","ariaLabel":"基础概念 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基础概念"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Decoration —— 装饰器,主要是用来 “装饰” 文件树样式的一种手段,常见的场景,如 Git 项目的特殊装饰:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN0102WFi9267ik1JKMeC_!!6000000007615-2-tps-1038-824.png","alt":"git-sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"注册装饰器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E8%A3%85%E9%A5%B0%E5%99%A8","ariaLabel":"注册装饰器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册装饰器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textregisterdecorationsprovidercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textregisterdecorationsprovidercode","ariaLabel":"code classlanguage textregisterdecorationsprovidercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerDecorationsProvider"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerDecorationsProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"provider"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationsProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册 DecorationsProvider 的基础数据结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDecorationData"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 权重\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration 颜色\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ColorIdentifier"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration 字符\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" letter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration tooltip\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" tooltip"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration 是否冒泡,类似文件的 Decoration 是否传给文件夹\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" bubble"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"案例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B","ariaLabel":"案例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SampleDecorationsProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDecorationsProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" label "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sample'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Emitter"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"get"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"provideDecorations"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationData "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"file"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"scheme "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'file'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      letter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'😸'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cat.smileForeground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      tooltip"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cat.smile'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      bubble"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" IDecorationData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"监听装饰器变化","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%9B%91%E5%90%AC%E8%A3%85%E9%A5%B0%E5%99%A8%E5%8F%98%E5%8C%96","ariaLabel":"监听装饰器变化 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"监听装饰器变化"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textondidchangedecorationscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondidchangedecorationscode","ariaLabel":"code classlanguage textondidchangedecorationscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidChangeDecorations"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onDidChangeDecorations"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResourceDecorationChangeEvent"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"针对文件名的 Decoration 变更事件进行事件分发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"案例-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B-1","ariaLabel":"案例 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"decorationsService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChangeDecorations"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// some listener"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"获取文件装饰器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E8%A3%85%E9%A5%B0%E5%99%A8","ariaLabel":"获取文件装饰器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"获取文件装饰器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textgetdecorationcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetdecorationcode","ariaLabel":"code classlanguage textgetdecorationcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getDecoration"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getDecoration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" includeChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" overwrite"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecoration "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"获取 uri 的方式获取当前文件的 Decoration 结果,如果没有获取到则返回 undefined"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"案例-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B-2","ariaLabel":"案例 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"decorationsService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getDecoration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块"},"parent":{"relativePath":"develop/module-apis/decoration.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/decoration","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"FileDecoration 模块主要用来注册/管理/分发跟文件名相关 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Decoration"}]},{"type":"text","value":" 服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"基础概念","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5","ariaLabel":"基础概念 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基础概念"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Decoration —— 装饰器,主要是用来 “装饰” 文件树样式的一种手段,常见的场景,如 Git 项目的特殊装饰:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN0102WFi9267ik1JKMeC_!!6000000007615-2-tps-1038-824.png","alt":"git-sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"注册装饰器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E8%A3%85%E9%A5%B0%E5%99%A8","ariaLabel":"注册装饰器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册装饰器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textregisterdecorationsprovidercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textregisterdecorationsprovidercode","ariaLabel":"code classlanguage textregisterdecorationsprovidercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerDecorationsProvider"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerDecorationsProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"provider"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationsProvider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册 DecorationsProvider 的基础数据结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDecorationData"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 权重\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration 颜色\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ColorIdentifier"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration 字符\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" letter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration tooltip\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" tooltip"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * Decoration 是否冒泡,类似文件的 Decoration 是否传给文件夹\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" bubble"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"案例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B","ariaLabel":"案例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SampleDecorationsProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IDecorationsProvider"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" label "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sample'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Emitter"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"get"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"provideDecorations"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationData "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"file"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"scheme "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'file'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      letter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'😸'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cat.smileForeground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      tooltip"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cat.smile'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      bubble"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" IDecorationData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"监听装饰器变化","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%9B%91%E5%90%AC%E8%A3%85%E9%A5%B0%E5%99%A8%E5%8F%98%E5%8C%96","ariaLabel":"监听装饰器变化 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"监听装饰器变化"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textondidchangedecorationscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondidchangedecorationscode","ariaLabel":"code classlanguage textondidchangedecorationscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidChangeDecorations"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onDidChangeDecorations"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResourceDecorationChangeEvent"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"针对文件名的 Decoration 变更事件进行事件分发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"案例-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B-1","ariaLabel":"案例 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"decorationsService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChangeDecorations"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// some listener"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"获取文件装饰器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E8%A3%85%E9%A5%B0%E5%99%A8","ariaLabel":"获取文件装饰器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"获取文件装饰器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"code-classlanguage-textgetdecorationcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetdecorationcode","ariaLabel":"code classlanguage textgetdecorationcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getDecoration"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getDecoration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" includeChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" overwrite"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecorationData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDecoration "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"获取 uri 的方式获取当前文件的 Decoration 结果,如果没有获取到则返回 undefined"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"案例-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B-2","ariaLabel":"案例 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"decorationsService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getDecoration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块"},"parent":{"relativePath":"develop/module-apis/decoration.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/module-apis/editor/page-data.json b/page-data/zh/docs/develop/module-apis/editor/page-data.json
        index 54a6a4f2..227b4777 100644
        --- a/page-data/zh/docs/develop/module-apis/editor/page-data.json
        +++ b/page-data/zh/docs/develop/module-apis/editor/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/editor","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"基础概念","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5","ariaLabel":"基础概念 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基础概念"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下图展示了打开一个编辑器 tab 的完整过程,可用于理解编辑器模块的核心概念:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01BRKCnA1kelm2RqRVn_!!6000000004709-2-tps-1448-1058.png","alt":""},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在整个 IDE 全局中,拥有一个唯一的 WorkbenchEditorService 实例,它是全局的编辑器管理服务。我们在打开一个编辑器时,首先要调用它的 open 方法,传入一个对应的 uri,如 file://path/to/fileToOpen.ts"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了打开这个 uri, 我们需要将其转换为一个在编辑器中可打开的 IResource, 它会拥有更多必要的对编辑器的信息。 这些信息由提前注册的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":" 提供"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Resource\n * 一个资源代表了一个能够在编辑器区域被打开的东西\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MetaData "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 是否允许刷新后恢复\n   */"}]},{"type":"text","value":"\n  supportsRevive"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源名称"}]},{"type":"text","value":"\n  name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源URI"}]},{"type":"text","value":"\n  uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源icon的class"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"icon"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源的额外信息"}]},{"type":"text","value":"\n  metadata"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MetaData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源已被删除"}]},{"type":"text","value":"\n  deleted"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":3},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"获得 IResource 之后,就可以在 tab 上创建新 tab, 展示对应的名称和 icon 了"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"为了能在编辑器中展示内容,还需要知道如何把这个 IResource 打开。OpenSumi 的编辑器模块支持一个资源拥有多种打开方式,如 md 文件拥有代码和实时预览的方式。一个打开方式可以是代码编辑器、diff 编辑器,或者是一个编辑器富组件(React 组件)。这些打开方式和富组件都需要提前在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorComponentRegistry"}]},{"type":"text","value":" 中进行注册"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定义一个resource如何被打开"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IEditorOpenType"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'code'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'diff'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  componentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认0, 大的排在前面"}]},{"type":"text","value":"\n  weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":5},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"获得对应的打开方式后,根据用户选择的类型将对应的内容展现在编辑器的主体中,这样就完成了一个 tab 的打开过程"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"拓展编辑器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8B%93%E5%B1%95%E7%BC%96%E8%BE%91%E5%99%A8","ariaLabel":"拓展编辑器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"拓展编辑器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browsereditorcontribution","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browsereditorcontribution","ariaLabel":"browsereditorcontribution permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"所有向编辑器模块贡献功能的贡献点统一使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerResource"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用来在合适的时机向 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ResourceService"}]},{"type":"text","value":" 注册可以在编辑器内打开的资源。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了让一个 uri 能够在编辑器中被打开,首先需要向 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ResourceService"}]},{"type":"text","value":" 注册一个用于解析 uri 至一个编辑器资源("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResource"}]},{"type":"text","value":") 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":"。它的主要职责是在这个 uri 在编辑器标签 Tab 上显示时提供它的名称、图标、是否被编辑等状态,以及相应这个 tab 被关闭时的回调等等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerEditorComponent"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用来在合适的时机向 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorComponentRegistry"}]},{"type":"text","value":" 注册编辑器组件、打开方式等功能。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一个 uri 对应的编辑器资源 ("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResource"}]},{"type":"text","value":") 需要能够在编辑器中展示,还需要为它注册对应的一个或者多个打开方式,以及对应打开方式使用的 React 组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"onDidRestoreState"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当进入 IDE 时,编辑器会尝试恢复上一次打开的编辑器组和组内打开的文件,完成后会执行 onDidRestoreState 这个 hook。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerEditorFeature"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用来在合适的时机向 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IEditorFeatureRegistry"}]},{"type":"text","value":" 注册 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorFeatureContribution"}]},{"type":"text","value":",以通过这种方式增强 monaco 编辑器的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"示例 1"}]},{"type":"text","value":" : 为 example_scheme://exampleTitle 这样的 Uri 注册一个编辑器组件,使得它能在编辑器内被打开。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"ExampleEditorComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"示例组件内容"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BrowserEditorContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExampleEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resourceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ResourceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册example_scheme 可以在编辑器打开,并且设定对应的tab icon 和 名字"}]},{"type":"text","value":"\n    resourceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerResourceProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      provideResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n        uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IWelcomeMetaData"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'示例编辑器组件'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example-icon-class'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" EditorComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 将组件进行注册"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ExampleEditorComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      uid"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme_component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 将这个组件设置为这个 example_scheme 的 resource 的默认打开方式"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponentResolver"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resource"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" results"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        results"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          componentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme_component'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"示例 2"}]},{"type":"text","value":" : 为 monaco 编辑器提供额外的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BrowserEditorContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExampleEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorFeature"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorFeatureRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorFeatureContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"contribute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"editor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在编辑器被创建时,会调用 contribute 这个函数,此时可以添加功能"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 需要返回一个 disposer,在编辑器实例被销毁的时候调用"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" editor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"monacoEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChangeModel"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"oldModelUrl"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toString"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"外部模块调用编辑器模块主要通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"WorkbenchEditorService"}]},{"type":"text","value":" 这个 class 来进行对应的操作。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods","ariaLabel":"methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcloseallcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcloseallcode","ariaLabel":"code classlanguage textcloseallcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"closeAll()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"closeAll"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" force"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"关闭全部编辑器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textopencode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textopencode","ariaLabel":"code classlanguage textopencode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"open()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IResourceOpenOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IOpenResourceResult"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"打开指定的 uri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textopenuriscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textopenuriscode","ariaLabel":"code classlanguage textopenuriscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"openUris()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"openUris"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"打开多个 uri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textsaveallcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textsaveallcode","ariaLabel":"code classlanguage textsaveallcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"saveAll()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"saveAll"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"includeUntitled"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"保存全部"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textclosecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textclosecode","ariaLabel":"code classlanguage textclosecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"close()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"close"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" force"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"关闭指定的 uri, 等同于 closeAll 带 uri 参数"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgetallopeneduriscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetallopeneduriscode","ariaLabel":"code classlanguage textgetallopeneduriscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getAllOpenedUris()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getAllOpenedUris"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"获得当前打开的 uri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcreateuntitledresourcecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcreateuntitledresourcecode","ariaLabel":"code classlanguage textcreateuntitledresourcecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createUntitledResource()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createUntitledResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IUntitledOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IOpenResourceResult"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"创建一个待保存的资源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"properties","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#properties","ariaLabel":"properties permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Properties"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textonactiveresourcechangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textonactiveresourcechangecode","ariaLabel":"code classlanguage textonactiveresourcechangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onActiveResourceChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onActiveResourceChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MaybeNull"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前 resource 发生变更事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textoncursorchangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textoncursorchangecode","ariaLabel":"code classlanguage textoncursorchangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onCursorChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onCursorChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CursorStatus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前编辑器内光标变化事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textondideditorgroupschangedcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondideditorgroupschangedcode","ariaLabel":"code classlanguage textondideditorgroupschangedcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidEditorGroupsChanged"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onDidEditorGroupsChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"编辑器组发生改变时的事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textondidcurrenteditorgroupchangedcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondidcurrenteditorgroupchangedcode","ariaLabel":"code classlanguage textondidcurrenteditorgroupchangedcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidCurrentEditorGroupChanged"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onDidCurrentEditorGroupChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前 editorGroup 发生改变的事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texteditorgroupscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texteditorgroupscode","ariaLabel":"code classlanguage texteditorgroupscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"editorGroups"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"editorGroups"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"所有的编辑器组"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrenteditorcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrenteditorcode","ariaLabel":"code classlanguage textcurrenteditorcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentEditor"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentEditor"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditor "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前的编辑器对象"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrentresourcecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrentresourcecode","ariaLabel":"code classlanguage textcurrentresourcecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentResource"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MaybeNull"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前焦点的编辑器资源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrenteditorgroupcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrenteditorgroupcode","ariaLabel":"code classlanguage textcurrenteditorgroupcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentEditorGroup"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentEditorGroup"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前的编辑器组"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块"},"parent":{"relativePath":"develop/module-apis/editor.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/editor","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"基础概念","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5","ariaLabel":"基础概念 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基础概念"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下图展示了打开一个编辑器 tab 的完整过程,可用于理解编辑器模块的核心概念:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01BRKCnA1kelm2RqRVn_!!6000000004709-2-tps-1448-1058.png","alt":""},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在整个 IDE 全局中,拥有一个唯一的 WorkbenchEditorService 实例,它是全局的编辑器管理服务。我们在打开一个编辑器时,首先要调用它的 open 方法,传入一个对应的 uri,如 file://path/to/fileToOpen.ts"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了打开这个 uri, 我们需要将其转换为一个在编辑器中可打开的 IResource, 它会拥有更多必要的对编辑器的信息。 这些信息由提前注册的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":" 提供"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Resource\n * 一个资源代表了一个能够在编辑器区域被打开的东西\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MetaData "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 是否允许刷新后恢复\n   */"}]},{"type":"text","value":"\n  supportsRevive"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源名称"}]},{"type":"text","value":"\n  name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源URI"}]},{"type":"text","value":"\n  uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源icon的class"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"icon"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源的额外信息"}]},{"type":"text","value":"\n  metadata"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MetaData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 资源已被删除"}]},{"type":"text","value":"\n  deleted"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":3},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"获得 IResource 之后,就可以在 tab 上创建新 tab, 展示对应的名称和 icon 了"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"为了能在编辑器中展示内容,还需要知道如何把这个 IResource 打开。OpenSumi 的编辑器模块支持一个资源拥有多种打开方式,如 md 文件拥有代码和实时预览的方式。一个打开方式可以是代码编辑器、diff 编辑器,或者是一个编辑器富组件(React 组件)。这些打开方式和富组件都需要提前在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorComponentRegistry"}]},{"type":"text","value":" 中进行注册"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定义一个resource如何被打开"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IEditorOpenType"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'code'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'diff'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  componentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认0, 大的排在前面"}]},{"type":"text","value":"\n  weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":5},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"获得对应的打开方式后,根据用户选择的类型将对应的内容展现在编辑器的主体中,这样就完成了一个 tab 的打开过程"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"拓展编辑器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8B%93%E5%B1%95%E7%BC%96%E8%BE%91%E5%99%A8","ariaLabel":"拓展编辑器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"拓展编辑器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"browsereditorcontribution","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browsereditorcontribution","ariaLabel":"browsereditorcontribution permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"所有向编辑器模块贡献功能的贡献点统一使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerResource"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用来在合适的时机向 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ResourceService"}]},{"type":"text","value":" 注册可以在编辑器内打开的资源。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了让一个 uri 能够在编辑器中被打开,首先需要向 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ResourceService"}]},{"type":"text","value":" 注册一个用于解析 uri 至一个编辑器资源("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResource"}]},{"type":"text","value":") 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResourceProvider"}]},{"type":"text","value":"。它的主要职责是在这个 uri 在编辑器标签 Tab 上显示时提供它的名称、图标、是否被编辑等状态,以及相应这个 tab 被关闭时的回调等等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerEditorComponent"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用来在合适的时机向 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorComponentRegistry"}]},{"type":"text","value":" 注册编辑器组件、打开方式等功能。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一个 uri 对应的编辑器资源 ("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IResource"}]},{"type":"text","value":") 需要能够在编辑器中展示,还需要为它注册对应的一个或者多个打开方式,以及对应打开方式使用的 React 组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"onDidRestoreState"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当进入 IDE 时,编辑器会尝试恢复上一次打开的编辑器组和组内打开的文件,完成后会执行 onDidRestoreState 这个 hook。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"registerEditorFeature"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用来在合适的时机向 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IEditorFeatureRegistry"}]},{"type":"text","value":" 注册 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"EditorFeatureContribution"}]},{"type":"text","value":",以通过这种方式增强 monaco 编辑器的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"示例 1"}]},{"type":"text","value":" : 为 example_scheme://exampleTitle 这样的 Uri 注册一个编辑器组件,使得它能在编辑器内被打开。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"ExampleEditorComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"示例组件内容"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BrowserEditorContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExampleEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resourceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ResourceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册example_scheme 可以在编辑器打开,并且设定对应的tab icon 和 名字"}]},{"type":"text","value":"\n    resourceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerResourceProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      provideResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n        uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IWelcomeMetaData"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'示例编辑器组件'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example-icon-class'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" EditorComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 将组件进行注册"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ExampleEditorComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      uid"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme_component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 将这个组件设置为这个 example_scheme 的 resource 的默认打开方式"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorComponentResolver"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"resource"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" results"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        results"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          componentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'example_scheme_component'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"示例 2"}]},{"type":"text","value":" : 为 monaco 编辑器提供额外的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"BrowserEditorContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ExampleEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserEditorContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorFeature"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorFeatureRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerEditorFeatureContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"contribute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"editor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在编辑器被创建时,会调用 contribute 这个函数,此时可以添加功能"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 需要返回一个 disposer,在编辑器实例被销毁的时候调用"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" editor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"monacoEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChangeModel"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"oldModelUrl"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toString"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"外部模块调用编辑器模块主要通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"WorkbenchEditorService"}]},{"type":"text","value":" 这个 class 来进行对应的操作。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods","ariaLabel":"methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcloseallcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcloseallcode","ariaLabel":"code classlanguage textcloseallcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"closeAll()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"closeAll"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" force"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"关闭全部编辑器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textopencode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textopencode","ariaLabel":"code classlanguage textopencode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"open()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IResourceOpenOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IOpenResourceResult"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"打开指定的 uri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textopenuriscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textopenuriscode","ariaLabel":"code classlanguage textopenuriscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"openUris()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"openUris"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"打开多个 uri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textsaveallcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textsaveallcode","ariaLabel":"code classlanguage textsaveallcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"saveAll()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"saveAll"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"includeUntitled"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"保存全部"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textclosecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textclosecode","ariaLabel":"code classlanguage textclosecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"close()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"close"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"uri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" force"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"关闭指定的 uri, 等同于 closeAll 带 uri 参数"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgetallopeneduriscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetallopeneduriscode","ariaLabel":"code classlanguage textgetallopeneduriscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getAllOpenedUris()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getAllOpenedUris"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"获得当前打开的 uri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcreateuntitledresourcecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcreateuntitledresourcecode","ariaLabel":"code classlanguage textcreateuntitledresourcecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createUntitledResource()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createUntitledResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IUntitledOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Promise"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IOpenResourceResult"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"创建一个待保存的资源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"properties","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#properties","ariaLabel":"properties permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Properties"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textonactiveresourcechangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textonactiveresourcechangecode","ariaLabel":"code classlanguage textonactiveresourcechangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onActiveResourceChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onActiveResourceChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MaybeNull"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前 resource 发生变更事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textoncursorchangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textoncursorchangecode","ariaLabel":"code classlanguage textoncursorchangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onCursorChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onCursorChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CursorStatus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前编辑器内光标变化事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textondideditorgroupschangedcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondideditorgroupschangedcode","ariaLabel":"code classlanguage textondideditorgroupschangedcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidEditorGroupsChanged"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onDidEditorGroupsChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"编辑器组发生改变时的事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textondidcurrenteditorgroupchangedcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textondidcurrenteditorgroupchangedcode","ariaLabel":"code classlanguage textondidcurrenteditorgroupchangedcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidCurrentEditorGroupChanged"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"onDidCurrentEditorGroupChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前 editorGroup 发生改变的事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texteditorgroupscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texteditorgroupscode","ariaLabel":"code classlanguage texteditorgroupscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"editorGroups"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"editorGroups"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"所有的编辑器组"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrenteditorcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrenteditorcode","ariaLabel":"code classlanguage textcurrenteditorcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentEditor"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentEditor"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditor "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前的编辑器对象"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrentresourcecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrentresourcecode","ariaLabel":"code classlanguage textcurrentresourcecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentResource"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentResource"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MaybeNull"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IResource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前焦点的编辑器资源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcurrenteditorgroupcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcurrenteditorgroupcode","ariaLabel":"code classlanguage textcurrenteditorgroupcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"currentEditorGroup"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"currentEditorGroup"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IEditorGroup"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前的编辑器组"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块"},"parent":{"relativePath":"develop/module-apis/editor.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/module-apis/layout/page-data.json b/page-data/zh/docs/develop/module-apis/layout/page-data.json
        index 36846545..c0c10789 100644
        --- a/page-data/zh/docs/develop/module-apis/layout/page-data.json
        +++ b/page-data/zh/docs/develop/module-apis/layout/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/layout","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"基础概念","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5","ariaLabel":"基础概念 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基础概念"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"布局模块(即 @opensumi/ide-main-layout)负责 IDE 的基础布局划分,将整个窗口划分为形如 left、main、bottom 的若干块区域,我们定义这种区域为插槽。在布局划分之后,又通过提供的插槽渲染器组件来消费注册到插槽的若干个大视图。在如左侧边栏这类特殊的插槽中,一个大的视图(称为视图容器)还可以支持注册多个小的子视图。所以最终整个布局和 React 视图组件的一个组织关系为:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/tfs/TB1gXOU3UH1gK0jSZSyXXXtlpXa-1850-990.png","alt":"布局与视图的组织关系"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们注册的视图最终会落到视图容器或子视图内。每个视图会通过 ContextProvider 注入全局的 DI 实例,视图内通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" 方法就可以拿到各个类的实例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"注册新视图","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E6%96%B0%E8%A7%86%E5%9B%BE","ariaLabel":"注册新视图 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册新视图"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"方式一静态声明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%B9%E5%BC%8F%E4%B8%80%E9%9D%99%E6%80%81%E5%A3%B0%E6%98%8E","ariaLabel":"方式一静态声明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"方式一:静态声明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" 将视图关联到唯一的视图 Token,再将 Token 声明到对应的位置:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 关联视图信息到token"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug-console'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 子视图ID"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DEBUG_CONSOLE_VIEW_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DebugConsoleView"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug.console.panel.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 视图容器ID"}]},{"type":"text","value":"\n    containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DEBUG_CONSOLE_CONTAINER_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 映射token到视图Slot"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" layoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"left"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug-console'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  layoutConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// rest code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"方式二动态注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%B9%E5%BC%8F%E4%BA%8C%E5%8A%A8%E6%80%81%E6%B3%A8%E5%86%8C","ariaLabel":"方式二动态注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"方式二:动态注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"直接通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"LayoutService"}]},{"type":"text","value":" 注册视图:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectTabbarComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 子视图ID"}]},{"type":"text","value":"\n      id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentPanelId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentsPanel\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    badge"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"panelBadge"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 视图容器ID"}]},{"type":"text","value":"\n    containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentPanelId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'comments'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toUpperCase"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hidden"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    activateKeyBinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ctrlcmd+shift+c'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commentsFeatureRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getCommentsPanelOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'bottom'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"动态注册方式还支持注册子视图到已有的视图容器内:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册文件树到资源管理器容器内"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ExplorerResourceViewId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getWorkspaceTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"3"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FileTree\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"控制监听视图变化","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8E%A7%E5%88%B6%E7%9B%91%E5%90%AC%E8%A7%86%E5%9B%BE%E5%8F%98%E5%8C%96","ariaLabel":"控制监听视图变化 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"控制/监听视图变化"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"视图注册到支持多视图切换的位置后(目前为左侧、底部和右侧),可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layoutService.getTabbarHandler(viewOrContainerId: string)"}]},{"type":"text","value":" 拿到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" 提供了非常强大的视图控制与监听能力:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * dispose 整个视图面板\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * dispose 子视图\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeView"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 激活该视图\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 取消激活该视图\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 当前视图激活状态\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isActivated"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 显示当前视图(区别于激活)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"show"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 隐藏当前视图(区别于取消激活,整个视图将不展示在 tabbar 上)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 设置视图的顶部标题组件\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitleComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Fc"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ComponentType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" object"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 设置当前视图的展开尺寸,会强制展开面板\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"size"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 设置视图tab的徽标\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"badge"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 获取视图tab的徽标\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 设置视图tab的图标\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setIconClass"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 当前视图是否折叠(区别于激活,整个slot位置都会折叠)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isCollapsed"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 折叠视图所在位置\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setCollapsed"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 切换子视图的折叠展开状态\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toggleViews"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewIds"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" show"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 更新子视图的标题\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateViewTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 更新视图的标题\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 禁用侧边栏的resize功能\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setResizeLock"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"lock"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 监听视图的激活状态\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onActivate"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 监听视图的取消激活状态\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onInActivate"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用示例:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handlerExplorer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandlerExplorer"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// handlerExplorer is activated"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"类","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%B1%BB","ariaLabel":"类 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"类"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"layoutservice","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#layoutservice","ariaLabel":"layoutservice permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"LayoutService"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DI token: IMainLayoutService"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"布局模块最上层的控制服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods","ariaLabel":"methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textisvisiblecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textisvisiblecode","ariaLabel":"code classlanguage textisvisiblecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"isVisible()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isVisible"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Boolean"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。传入 Slot 位置,返回视图是否可见(非折叠状态)的状态。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttoggleslotcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttoggleslotcode","ariaLabel":"code classlanguage texttoggleslotcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleSlot()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toggleSlot"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" show"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" size"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。切换 Slot 的折叠展开状态,支持显示的传入"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"show"}]},{"type":"text","value":"参数指定是否展开,未传入则取当前状态相反值进行切换;支持显示传入"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"size"}]},{"type":"text","value":"参数指定最终的展开尺寸。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"传入的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"size"}]},{"type":"text","value":"若为 0 会被忽略。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgettabbarservicecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgettabbarservicecode","ariaLabel":"code classlanguage textgettabbarservicecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarService()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TabbarService"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。传入 Slot 位置,返回指定位置的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarService"}]},{"type":"text","value":"实例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgetaccordionservicecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetaccordionservicecode","ariaLabel":"code classlanguage textgetaccordionservicecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getAccordionService()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getAccordionService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" AccordionService"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。传入 Slot 位置,返回指定位置的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AccordionService"}]},{"type":"text","value":"实例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgettabbarhandlercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgettabbarhandlercode","ariaLabel":"code classlanguage textgettabbarhandlercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarHandler()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewOrContainerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TabBarHandler "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。获取视图或子视图对应的视图控制器,控制器支持进行视图事件监听、主动切换展开状态等能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般情况下推荐使用"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabBarHandler"}]},{"type":"text","value":"对视图状态进行主动控制,而不是使用"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleSlot"}]},{"type":"text","value":" api。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h6","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handler "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandler"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  console"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer tab activated!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandler"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcollecttabbarcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcollecttabbarcomponentcode","ariaLabel":"code classlanguage textcollecttabbarcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"collectTabbarComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectTabbarComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"views"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"options"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewContainerOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。往指定 Slot 注册一个或多个视图(若指定 Slot 不支持多个子视图,则只会渲染第一个)。支持自定义视图的标题组件"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"titleComponent"}]},{"type":"text","value":",标题组件为侧边栏顶部区域或底部栏的左上角区域。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdisposecontainercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdisposecontainercode","ariaLabel":"code classlanguage textdisposecontainercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"disposeContainer()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。销毁一个已注册的视图面板。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcollectviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcollectviewcomponentcode","ariaLabel":"code classlanguage textcollectviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"collectViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"view"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"containerId"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"props"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。往一个视图面板内加入新的子视图面板,支持传入自定义的默认 props。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textreplaceviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textreplaceviewcomponentcode","ariaLabel":"code classlanguage textreplaceviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"replaceViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"replaceViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"view"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。替换一个已存在的子视图,一般用于预加载场景下,替换加载中的占位视图。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdisposeviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdisposeviewcomponentcode","ariaLabel":"code classlanguage textdisposeviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"disposeViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。销毁一个已经注册的子视图。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textrevealviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textrevealviewcode","ariaLabel":"code classlanguage textrevealviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"revealView()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"revealView"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。强制展开一个子视图,注意该方法并不会保证子视图所在的视图容器可见。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"hr","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"tabbarservice","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#tabbarservice","ariaLabel":"tabbarservice permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TabbarService"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DI Token: TabbarServiceFactory"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"面向多视图注册、可折叠展开的 Slot 使用的视图激活控制服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"properties","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#properties","ariaLabel":"properties permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Properties"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textoncurrentchangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textoncurrentchangecode","ariaLabel":"code classlanguage textoncurrentchangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onCurrentChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"readonly onCurrentChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"previousId"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" currentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前激活视图变化的事件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h6","properties":{"id":"example-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-1","ariaLabel":"example 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"tabbarService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onCurrentChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","parameter"]},"children":[{"type":"text","value":"e"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  console"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"currentId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"previousId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"methods-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods-1","ariaLabel":"methods 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textregistercontainercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textregistercontainercode","ariaLabel":"code classlanguage textregistercontainercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerContainer()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"componentInfo"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册一个新的视图容器。返回一个销毁该容器及其所有副作用的句柄。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"hr","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"react-组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#react-%E7%BB%84%E4%BB%B6","ariaLabel":"react 组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"React 组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"boxpanel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#boxpanel","ariaLabel":"boxpanel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"BoxPanel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"弹性布局容器组件,将子视图按照一定的方向进行渲染"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ChildComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactElement"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nBoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  children"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ChildComponent "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ChildComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  zIndex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"splitpanel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#splitpanel","ariaLabel":"splitpanel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"SplitPanel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"支持 Resize 的布局容器组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitChildProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  minSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  maxSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  minResize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flexGrow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  noResize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  savedSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  children"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ChildComponent "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ChildComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitPanelProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitChildProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// setAbsoluteSize 时保证相邻节点总宽度不变"}]},{"type":"text","value":"\n  resizeKeep"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  dynamicTarget"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 控制使用传入尺寸之和作为总尺寸或使用dom尺寸"}]},{"type":"text","value":"\n  useDomSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\nSplitPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SplitPanelProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"tabrendererbase","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#tabrendererbase","ariaLabel":"tabrendererbase permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TabRendererBase"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"props","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#props","ariaLabel":"props permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"props"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textsidecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textsidecode","ariaLabel":"code classlanguage textsidecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"side"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textclassnamecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textclassnamecode","ariaLabel":"code classlanguage textclassnamecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"className"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcomponentscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcomponentscode","ariaLabel":"code classlanguage textcomponentscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"components"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"components"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdirectioncode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdirectioncode","ariaLabel":"code classlanguage textdirectioncode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"direction"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textnoaccordioncode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textnoaccordioncode","ariaLabel":"code classlanguage textnoaccordioncode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"noAccordion"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"noAccordion"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttabbarviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttabbarviewcode","ariaLabel":"code classlanguage texttabbarviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarView"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabbarView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"component"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  forbidCollapse"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// tabbar的尺寸(横向为宽,纵向高),tab折叠后为改尺寸加上panelBorderSize"}]},{"type":"text","value":"\n  barSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 包含tab的内外边距的总尺寸,用于控制溢出隐藏逻辑"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"tabSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"MoreTabView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  panelBorderSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  tabClassName"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// tab上预留的位置,用来控制tab过多的显示效果"}]},{"type":"text","value":"\n  margin"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttabpanelviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttabpanelviewcode","ariaLabel":"code classlanguage texttabpanelviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabpanelView"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabpanelView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"PanelView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"component"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"titleMenu"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenu "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// tabPanel的尺寸(横向为宽,纵向高)"}]},{"type":"text","value":"\n  panelSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块"},"parent":{"relativePath":"develop/module-apis/layout.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/layout","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"基础概念","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5","ariaLabel":"基础概念 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基础概念"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"布局模块(即 @opensumi/ide-main-layout)负责 IDE 的基础布局划分,将整个窗口划分为形如 left、main、bottom 的若干块区域,我们定义这种区域为插槽。在布局划分之后,又通过提供的插槽渲染器组件来消费注册到插槽的若干个大视图。在如左侧边栏这类特殊的插槽中,一个大的视图(称为视图容器)还可以支持注册多个小的子视图。所以最终整个布局和 React 视图组件的一个组织关系为:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/tfs/TB1gXOU3UH1gK0jSZSyXXXtlpXa-1850-990.png","alt":"布局与视图的组织关系"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们注册的视图最终会落到视图容器或子视图内。每个视图会通过 ContextProvider 注入全局的 DI 实例,视图内通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" 方法就可以拿到各个类的实例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"注册新视图","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E6%96%B0%E8%A7%86%E5%9B%BE","ariaLabel":"注册新视图 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册新视图"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"方式一静态声明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%B9%E5%BC%8F%E4%B8%80%E9%9D%99%E6%80%81%E5%A3%B0%E6%98%8E","ariaLabel":"方式一静态声明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"方式一:静态声明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" 将视图关联到唯一的视图 Token,再将 Token 声明到对应的位置:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 关联视图信息到token"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug-console'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 子视图ID"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DEBUG_CONSOLE_VIEW_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" DebugConsoleView"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug.console.panel.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 视图容器ID"}]},{"type":"text","value":"\n    containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DEBUG_CONSOLE_CONTAINER_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debug'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 映射token到视图Slot"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" layoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"left"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug-console'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  layoutConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// rest code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"方式二动态注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%B9%E5%BC%8F%E4%BA%8C%E5%8A%A8%E6%80%81%E6%B3%A8%E5%86%8C","ariaLabel":"方式二动态注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"方式二:动态注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"直接通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"LayoutService"}]},{"type":"text","value":" 注册视图:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectTabbarComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 子视图ID"}]},{"type":"text","value":"\n      id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentPanelId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentsPanel\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    badge"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"panelBadge"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 视图容器ID"}]},{"type":"text","value":"\n    containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommentPanelId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'comments'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toUpperCase"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hidden"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    activateKeyBinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ctrlcmd+shift+c'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commentsFeatureRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getCommentsPanelOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'bottom'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"动态注册方式还支持注册子视图到已有的视图容器内:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册文件树到资源管理器容器内"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ExplorerResourceViewId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getWorkspaceTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    weight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"3"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" FileTree\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"控制监听视图变化","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8E%A7%E5%88%B6%E7%9B%91%E5%90%AC%E8%A7%86%E5%9B%BE%E5%8F%98%E5%8C%96","ariaLabel":"控制监听视图变化 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"控制/监听视图变化"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"视图注册到支持多视图切换的位置后(目前为左侧、底部和右侧),可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layoutService.getTabbarHandler(viewOrContainerId: string)"}]},{"type":"text","value":" 拿到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" 提供了非常强大的视图控制与监听能力:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TabbarHandler"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * dispose 整个视图面板\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * dispose 子视图\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeView"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 激活该视图\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 取消激活该视图\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 当前视图激活状态\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isActivated"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 显示当前视图(区别于激活)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"show"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 隐藏当前视图(区别于取消激活,整个视图将不展示在 tabbar 上)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 设置视图的顶部标题组件\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitleComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Fc"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ComponentType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" object"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 设置当前视图的展开尺寸,会强制展开面板\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"size"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 设置视图tab的徽标\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"badge"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 获取视图tab的徽标\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 设置视图tab的图标\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setIconClass"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 当前视图是否折叠(区别于激活,整个slot位置都会折叠)\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isCollapsed"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 折叠视图所在位置\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setCollapsed"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 切换子视图的折叠展开状态\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toggleViews"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewIds"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" show"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 更新子视图的标题\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateViewTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 更新视图的标题\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 禁用侧边栏的resize功能\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setResizeLock"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"lock"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 监听视图的激活状态\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onActivate"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 监听视图的取消激活状态\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" onInActivate"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用示例:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handlerExplorer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandlerExplorer"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// handlerExplorer is activated"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"类","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%B1%BB","ariaLabel":"类 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"类"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"layoutservice","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#layoutservice","ariaLabel":"layoutservice permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"LayoutService"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DI token: IMainLayoutService"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"布局模块最上层的控制服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"methods","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods","ariaLabel":"methods permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textisvisiblecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textisvisiblecode","ariaLabel":"code classlanguage textisvisiblecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"isVisible()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"isVisible"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Boolean"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。传入 Slot 位置,返回视图是否可见(非折叠状态)的状态。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttoggleslotcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttoggleslotcode","ariaLabel":"code classlanguage texttoggleslotcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleSlot()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"toggleSlot"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" show"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" size"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。切换 Slot 的折叠展开状态,支持显示的传入"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"show"}]},{"type":"text","value":"参数指定是否展开,未传入则取当前状态相反值进行切换;支持显示传入"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"size"}]},{"type":"text","value":"参数指定最终的展开尺寸。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"传入的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"size"}]},{"type":"text","value":"若为 0 会被忽略。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgettabbarservicecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgettabbarservicecode","ariaLabel":"code classlanguage textgettabbarservicecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarService()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TabbarService"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。传入 Slot 位置,返回指定位置的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarService"}]},{"type":"text","value":"实例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgetaccordionservicecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgetaccordionservicecode","ariaLabel":"code classlanguage textgetaccordionservicecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getAccordionService()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getAccordionService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" AccordionService"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。传入 Slot 位置,返回指定位置的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AccordionService"}]},{"type":"text","value":"实例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textgettabbarhandlercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textgettabbarhandlercode","ariaLabel":"code classlanguage textgettabbarhandlercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarHandler()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewOrContainerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TabBarHandler "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。获取视图或子视图对应的视图控制器,控制器支持进行视图事件监听、主动切换展开状态等能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般情况下推荐使用"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabBarHandler"}]},{"type":"text","value":"对视图状态进行主动控制,而不是使用"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleSlot"}]},{"type":"text","value":" api。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h6","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handler "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" layoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandler"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  console"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'explorer tab activated!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\nhandler"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcollecttabbarcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcollecttabbarcomponentcode","ariaLabel":"code classlanguage textcollecttabbarcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"collectTabbarComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectTabbarComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"views"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"options"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewContainerOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。往指定 Slot 注册一个或多个视图(若指定 Slot 不支持多个子视图,则只会渲染第一个)。支持自定义视图的标题组件"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"titleComponent"}]},{"type":"text","value":",标题组件为侧边栏顶部区域或底部栏的左上角区域。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdisposecontainercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdisposecontainercode","ariaLabel":"code classlanguage textdisposecontainercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"disposeContainer()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多视图注册、可折叠展开的 Slot 可用。销毁一个已注册的视图面板。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcollectviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcollectviewcomponentcode","ariaLabel":"code classlanguage textcollectviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"collectViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"view"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"containerId"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"props"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。往一个视图面板内加入新的子视图面板,支持传入自定义的默认 props。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textreplaceviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textreplaceviewcomponentcode","ariaLabel":"code classlanguage textreplaceviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"replaceViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"replaceViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"view"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" any"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。替换一个已存在的子视图,一般用于预加载场景下,替换加载中的占位视图。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdisposeviewcomponentcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdisposeviewcomponentcode","ariaLabel":"code classlanguage textdisposeviewcomponentcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"disposeViewComponent()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"disposeViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。销毁一个已经注册的子视图。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textrevealviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textrevealviewcode","ariaLabel":"code classlanguage textrevealviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"revealView()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"revealView"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"viewId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"仅在支持多子视图渲染的 Slot 可用。强制展开一个子视图,注意该方法并不会保证子视图所在的视图容器可见。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"hr","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"tabbarservice","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#tabbarservice","ariaLabel":"tabbarservice permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TabbarService"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DI Token: TabbarServiceFactory"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"面向多视图注册、可折叠展开的 Slot 使用的视图激活控制服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"properties","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#properties","ariaLabel":"properties permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Properties"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textoncurrentchangecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textoncurrentchangecode","ariaLabel":"code classlanguage textoncurrentchangecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onCurrentChange"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"readonly onCurrentChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Event"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"previousId"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" currentId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前激活视图变化的事件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h6","properties":{"id":"example-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-1","ariaLabel":"example 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"tabbarService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onCurrentChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","parameter"]},"children":[{"type":"text","value":"e"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  console"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"currentId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" e"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"previousId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"methods-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#methods-1","ariaLabel":"methods 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Methods"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textregistercontainercode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textregistercontainercode","ariaLabel":"code classlanguage textregistercontainercode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerContainer()"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"componentInfo"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册一个新的视图容器。返回一个销毁该容器及其所有副作用的句柄。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"hr","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"react-组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#react-%E7%BB%84%E4%BB%B6","ariaLabel":"react 组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"React 组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"boxpanel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#boxpanel","ariaLabel":"boxpanel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"BoxPanel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"弹性布局容器组件,将子视图按照一定的方向进行渲染"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ChildComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactElement"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nBoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  children"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ChildComponent "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ChildComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  zIndex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"splitpanel","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#splitpanel","ariaLabel":"splitpanel permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"SplitPanel"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"支持 Resize 的布局容器组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitChildProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  minSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  maxSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  minResize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  flexGrow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  noResize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  savedSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  children"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ChildComponent "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ChildComponent"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitPanelProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SplitChildProps"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// setAbsoluteSize 时保证相邻节点总宽度不变"}]},{"type":"text","value":"\n  resizeKeep"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  dynamicTarget"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 控制使用传入尺寸之和作为总尺寸或使用dom尺寸"}]},{"type":"text","value":"\n  useDomSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\nSplitPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SplitPanelProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"tabrendererbase","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#tabrendererbase","ariaLabel":"tabrendererbase permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TabRendererBase"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"props","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#props","ariaLabel":"props permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"props"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textsidecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textsidecode","ariaLabel":"code classlanguage textsidecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"side"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textclassnamecode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textclassnamecode","ariaLabel":"code classlanguage textclassnamecode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"className"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textcomponentscode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textcomponentscode","ariaLabel":"code classlanguage textcomponentscode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"components"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"components"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textdirectioncode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textdirectioncode","ariaLabel":"code classlanguage textdirectioncode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"direction"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"direction"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-textnoaccordioncode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-textnoaccordioncode","ariaLabel":"code classlanguage textnoaccordioncode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"noAccordion"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"text","value":"noAccordion"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttabbarviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttabbarviewcode","ariaLabel":"code classlanguage texttabbarviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabbarView"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabbarView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"component"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  forbidCollapse"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// tabbar的尺寸(横向为宽,纵向高),tab折叠后为改尺寸加上panelBorderSize"}]},{"type":"text","value":"\n  barSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 包含tab的内外边距的总尺寸,用于控制溢出隐藏逻辑"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"tabSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"MoreTabView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  panelBorderSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  tabClassName"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// tab上预留的位置,用来控制tab过多的显示效果"}]},{"type":"text","value":"\n  margin"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"code-classlanguage-texttabpanelviewcode","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#code-classlanguage-texttabpanelviewcode","ariaLabel":"code classlanguage texttabpanelviewcode permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TabpanelView"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"js"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-js"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"TabpanelView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"PanelView"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"component"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"side"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" string"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"titleMenu"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenu "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// tabPanel的尺寸(横向为宽,纵向高)"}]},{"type":"text","value":"\n  panelSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" number"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块"},"parent":{"relativePath":"develop/module-apis/layout.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/module-apis/overlay/page-data.json b/page-data/zh/docs/develop/module-apis/overlay/page-data.json
        index 4636d103..7c0927a5 100644
        --- a/page-data/zh/docs/develop/module-apis/overlay/page-data.json
        +++ b/page-data/zh/docs/develop/module-apis/overlay/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/overlay","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Overlay 模块为 IDE 上的浮层模块,例如包含 Dialog(弹窗)、Message(消息)等模块。如果需要在 IDE 通知用户一条消息或者需要一个模态对话框和用户交互时,可以使用该模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h1","properties":{"id":"message","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message","ariaLabel":"message permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Message"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Message 会在 IDE 右下角弹出一个提示信息:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN010VHpDr1NuaK6IMhar_!!6000000001630-2-tps-1196-376.png","alt":"message"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"接口","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8E%A5%E5%8F%A3","ariaLabel":"接口 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"接口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"warning"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"error"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MessageType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    from"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"参数说明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E","ariaLabel":"参数说明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"参数说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以下参数以 info 为例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"message-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message-1","ariaLabel":"message 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"message"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"message 主要指定了消息体,可以是一个普通的文本消息,也可以是一个 React 组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'复制成功'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"buttons","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#buttons","ariaLabel":"buttons permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"buttons"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"buttons 为弹窗右下角按钮,按照从左向右的顺序依次渲染,用户选择后会返回选择的结果。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"example-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-1","ariaLabel":"example 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'是否要更新插件'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'取消'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"closable","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#closable","ariaLabel":"closable permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"closable"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"是否显示关闭按钮,默认为 true。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"常见问题","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98","ariaLabel":"常见问题 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"常见问题"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"消息弹出时间是多久","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B6%88%E6%81%AF%E5%BC%B9%E5%87%BA%E6%97%B6%E9%97%B4%E6%98%AF%E5%A4%9A%E4%B9%85","ariaLabel":"消息弹出时间是多久 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"消息弹出时间是多久"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"info: 15 秒"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"warning: 18 秒"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"error: 20 秒"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何自定义消息组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E8%87%AA%E5%AE%9A%E4%B9%89%E6%B6%88%E6%81%AF%E7%BB%84%E4%BB%B6","ariaLabel":"如何自定义消息组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何自定义消息组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果不想用默认消息图标,可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"open"}]},{"type":"text","value":" 接口自定义消息组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"example-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-2","ariaLabel":"example 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" messageService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"这是一个自定义消息"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"button"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"确定"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CustomMessage "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MessageType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EMPTY"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h1","properties":{"id":"dialog","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dialog","ariaLabel":"dialog permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dialog"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Dialog 接口与消息一致,不过弹窗为模态。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01iiAS2T1DzwnvXSD8C_!!6000000000288-2-tps-1078-390.png","alt":"dialog"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example-3","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-3","ariaLabel":"example 3 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IDialogService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'这是一个模态弹窗'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'取消'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块"},"parent":{"relativePath":"develop/module-apis/overlay.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/overlay","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Overlay 模块为 IDE 上的浮层模块,例如包含 Dialog(弹窗)、Message(消息)等模块。如果需要在 IDE 通知用户一条消息或者需要一个模态对话框和用户交互时,可以使用该模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h1","properties":{"id":"message","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message","ariaLabel":"message permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Message"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Message 会在 IDE 右下角弹出一个提示信息:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN010VHpDr1NuaK6IMhar_!!6000000001630-2-tps-1196-376.png","alt":"message"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"接口","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8E%A5%E5%8F%A3","ariaLabel":"接口 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"接口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"warning"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"error"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ReactNode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MessageType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    buttons"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    closable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    from"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"参数说明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E","ariaLabel":"参数说明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"参数说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以下参数以 info 为例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"message-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#message-1","ariaLabel":"message 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"message"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"message 主要指定了消息体,可以是一个普通的文本消息,也可以是一个 React 组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"example","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example","ariaLabel":"example permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'复制成功'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"buttons","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#buttons","ariaLabel":"buttons permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"buttons"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"buttons 为弹窗右下角按钮,按照从左向右的顺序依次渲染,用户选择后会返回选择的结果。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h5","properties":{"id":"example-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-1","ariaLabel":"example 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'是否要更新插件'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'取消'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"closable","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#closable","ariaLabel":"closable permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"closable"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"是否显示关闭按钮,默认为 true。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"常见问题","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98","ariaLabel":"常见问题 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"常见问题"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"消息弹出时间是多久","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B6%88%E6%81%AF%E5%BC%B9%E5%87%BA%E6%97%B6%E9%97%B4%E6%98%AF%E5%A4%9A%E4%B9%85","ariaLabel":"消息弹出时间是多久 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"消息弹出时间是多久"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"info: 15 秒"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"warning: 18 秒"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"error: 20 秒"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何自定义消息组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E8%87%AA%E5%AE%9A%E4%B9%89%E6%B6%88%E6%81%AF%E7%BB%84%E4%BB%B6","ariaLabel":"如何自定义消息组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何自定义消息组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果不想用默认消息图标,可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"open"}]},{"type":"text","value":" 接口自定义消息组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"example-2","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-2","ariaLabel":"example 2 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" messageService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"这是一个自定义消息"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"button"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hide"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"确定"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CustomMessage "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MessageType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EMPTY"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h1","properties":{"id":"dialog","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dialog","ariaLabel":"dialog permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dialog"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Dialog 接口与消息一致,不过弹窗为模态。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01iiAS2T1DzwnvXSD8C_!!6000000000288-2-tps-1078-390.png","alt":"dialog"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"example-3","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#example-3","ariaLabel":"example 3 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Example"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IDialogService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MessageDemo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"dialogService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'这是一个模态弹窗'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'取消'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'确定'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块"},"parent":{"relativePath":"develop/module-apis/overlay.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/module-apis/preference/page-data.json b/page-data/zh/docs/develop/module-apis/preference/page-data.json
        index da77e898..96cc25ee 100644
        --- a/page-data/zh/docs/develop/module-apis/preference/page-data.json
        +++ b/page-data/zh/docs/develop/module-apis/preference/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/preference","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Preferences 模块主要用于处理整个 IDE 配置的读取逻辑,常见的配置常见有:颜色主题、图标主题、自动保存等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"存储路径","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AD%98%E5%82%A8%E8%B7%AF%E5%BE%84","ariaLabel":"存储路径 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"存储路径"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"配置文件的目录位置可通过在配置 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" 时传入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"text","value":" 分别配置"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"全局配置"}]},{"type":"text","value":"和"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"工作区配置"}]},{"type":"text","value":"的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings.json"}]},{"type":"text","value":"读取路径。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下面我们统一将 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi"}]},{"type":"text","value":" 作为我们默认的配置文件读取路径"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于全局配置,我们一般是从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"~/.sumi/settings.json"}]},{"type":"text","value":" 文件中读取。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"针对工作区的配置文件,我们一般是从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"${工作区路径}/.sumi/settings.json"}]},{"type":"text","value":" 文件中读取,但在存在多个工作区存在的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"多工作区"}]},{"type":"text","value":" 项目,我们则是从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"${工作区名称}.sumi-workspace"}]},{"type":"text","value":" 文件中读取。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"注册新配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E6%96%B0%E9%85%8D%E7%BD%AE","ariaLabel":"注册新配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册新配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"方式一","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%B9%E5%BC%8F%E4%B8%80","ariaLabel":"方式一 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"方式一"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code Configuration Contribution"}]},{"type":"text","value":" 进行配置注册及声明,见:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.configuration","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Configuration Contribution"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"方式二","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%B9%E5%BC%8F%E4%BA%8C","ariaLabel":"方式二 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"方式二"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过在模块内进行额外的配置声明,代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'typescript'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo language type'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"将上述的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" 类在模块声明时引入,便可以在 IDE 环境中注册上新的配置,参考代码:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/v2.13.10/packages/core-browser/src/common/common.contribution.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"common.contribution.ts"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"配置值操作","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%85%8D%E7%BD%AE%E5%80%BC%E6%93%8D%E4%BD%9C","ariaLabel":"配置值操作 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"配置值操作"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可以简单的通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceService"}]},{"type":"text","value":" 来进行配置文件的获取及修改,同时监听其变化:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Demo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 监听配置变化事件,记得在界面卸载时调用这里的 `disposable.dispose()` 清理监听函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" disposable "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onPreferencesChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"changes"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Preferences Changes: '"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" changes"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 获取全局配置"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"User"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置工作区配置"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置全局配置"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"User"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置工作区配置"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"拓展内容","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8B%93%E5%B1%95%E5%86%85%E5%AE%B9","ariaLabel":"拓展内容 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"拓展内容"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"设置面板模块 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keymap"}]},{"type":"text","value":" 与 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Preference"}]},{"type":"text","value":" 模块之间存在一定的依赖及关联关系。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你需要让你通过模块引入定义的配置出现在设置面板中,你可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" 贡献点来定义。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"案例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B","ariaLabel":"案例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在 `general`  面板追加一个 `demo.language` 配置项的展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SettingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoSettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleSettingSections"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ISettingSection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      general"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          preferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 原有配置项"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.theme'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.icon'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.icon'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.language'"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 追加配置项"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.demo.language'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,你也可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" 配置某个配置值不出现在某个配置环境下,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我希望语言配置应该只存在"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"全局设置"}]},{"type":"text","value":",而不应该在"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"工作区配置"}]},{"type":"text","value":"中出现,则我可以如下编写我的贡献点文件:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SettingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoSettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleSettingSections"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ISettingSection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      general"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          preferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 原有配置项"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.theme'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.icon'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.icon'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              hiddenInScope"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多配置说明及拓展,可进一步查看 OpenSumi 源码。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块"},"parent":{"relativePath":"develop/module-apis/preference.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-apis/preference","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Preferences 模块主要用于处理整个 IDE 配置的读取逻辑,常见的配置常见有:颜色主题、图标主题、自动保存等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"存储路径","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AD%98%E5%82%A8%E8%B7%AF%E5%BE%84","ariaLabel":"存储路径 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"存储路径"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"配置文件的目录位置可通过在配置 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" 时传入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"text","value":" 分别配置"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"全局配置"}]},{"type":"text","value":"和"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"工作区配置"}]},{"type":"text","value":"的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings.json"}]},{"type":"text","value":"读取路径。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下面我们统一将 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi"}]},{"type":"text","value":" 作为我们默认的配置文件读取路径"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于全局配置,我们一般是从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"~/.sumi/settings.json"}]},{"type":"text","value":" 文件中读取。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"针对工作区的配置文件,我们一般是从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"${工作区路径}/.sumi/settings.json"}]},{"type":"text","value":" 文件中读取,但在存在多个工作区存在的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"多工作区"}]},{"type":"text","value":" 项目,我们则是从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"${工作区名称}.sumi-workspace"}]},{"type":"text","value":" 文件中读取。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"注册新配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E6%96%B0%E9%85%8D%E7%BD%AE","ariaLabel":"注册新配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册新配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"方式一","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%B9%E5%BC%8F%E4%B8%80","ariaLabel":"方式一 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"方式一"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code Configuration Contribution"}]},{"type":"text","value":" 进行配置注册及声明,见:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.configuration","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Configuration Contribution"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"方式二","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%B9%E5%BC%8F%E4%BA%8C","ariaLabel":"方式二 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"方式二"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过在模块内进行额外的配置声明,代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'typescript'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo language type'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" demoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"将上述的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoContribution"}]},{"type":"text","value":" 类在模块声明时引入,便可以在 IDE 环境中注册上新的配置,参考代码:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/v2.13.10/packages/core-browser/src/common/common.contribution.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"common.contribution.ts"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"配置值操作","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%85%8D%E7%BD%AE%E5%80%BC%E6%93%8D%E4%BD%9C","ariaLabel":"配置值操作 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"配置值操作"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可以简单的通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceService"}]},{"type":"text","value":" 来进行配置文件的获取及修改,同时监听其变化:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Demo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 监听配置变化事件,记得在界面卸载时调用这里的 `disposable.dispose()` 清理监听函数"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" disposable "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onPreferencesChanged"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"changes"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Preferences Changes: '"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" changes"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 获取全局配置"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"User"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置工作区配置"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置全局配置"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"User"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置工作区配置"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.config'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"拓展内容","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8B%93%E5%B1%95%E5%86%85%E5%AE%B9","ariaLabel":"拓展内容 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"拓展内容"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"设置面板模块 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Keymap"}]},{"type":"text","value":" 与 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Preference"}]},{"type":"text","value":" 模块之间存在一定的依赖及关联关系。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你需要让你通过模块引入定义的配置出现在设置面板中,你可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" 贡献点来定义。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"案例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B","ariaLabel":"案例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 在 `general`  面板追加一个 `demo.language` 配置项的展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SettingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoSettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleSettingSections"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ISettingSection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      general"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          preferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 原有配置项"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.theme'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.icon'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.icon'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.language'"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 追加配置项"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'demo.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.demo.language'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,你也可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" 配置某个配置值不出现在某个配置环境下,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我希望语言配置应该只存在"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"全局设置"}]},{"type":"text","value":",而不应该在"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"工作区配置"}]},{"type":"text","value":"中出现,则我可以如下编写我的贡献点文件:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SettingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoSettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SettingContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleSettingSections"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ISettingSection"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"settingSections"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      general"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          preferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 原有配置项"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.theme'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.icon'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.icon'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              localized"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'preference.general.language'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              hiddenInScope"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"PreferenceScope"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多配置说明及拓展,可进一步查看 OpenSumi 源码。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块"},"parent":{"relativePath":"develop/module-apis/preference.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/module-samples/page-data.json b/page-data/zh/docs/develop/module-samples/page-data.json
        index 4d1fec23..b4b96991 100644
        --- a/page-data/zh/docs/develop/module-samples/page-data.json
        +++ b/page-data/zh/docs/develop/module-samples/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-samples","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们官方提供了一个模块拓展的案例仓库 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/opensumi-module-samples"}]},{"type":"text","value":", 你可以在模板仓库中学习到如下内容:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"案例"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"API & 文档"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/connection","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"通信案例"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/en/docs/develop/sample/connection-between-browser-and-node","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"connection-between-browser-and-node"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-env","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义终端环境变量案例"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Add custom Terminal enviroment variables"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"如何使用内置组件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/use-antd","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"如何使用 AntD 组件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use OpenSumi antd theme"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/add-welcome-content","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"欢迎页面"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create your welcome page"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/editor-title","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"编辑器右侧菜单拓展"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create Editor Title Actions"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/editor-title","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"如何使用输出面板"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Logging message on Output panel"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/example/src/browser/i18n/setup.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"i18n"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"How to custom i18n text"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/toggle-panel/browser/toggle-panel.contribution.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"切换面板"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Toggle Panel or Sidebar"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/example/src/node/start-server.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义插件市场源"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Custom Extension Marketplace entrypoint"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/custom-toolbar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义布局"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-view","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义布局视图"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/use-antd","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用 AntD 组件打开文件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"基础 TreeView"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/builtin-services/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Modal API"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"如何使用 IMessageService/IDialogService/IProcessService"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/connection/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用自定义菜单 ID"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/connection/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"添加工具栏菜单"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/editor-empty-component/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义编辑器空组件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"自定义编辑器空组件"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/custom-view/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"添加自定义视图"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/custom-context-menu/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义上下文菜单或菜单栏菜单"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-menu","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义菜单"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用内置组件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/builtin-services","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用内置服务"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/builtin-events","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用内置事件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/editor-monaco-component","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"在自定义编辑器组件中使用 Monaco"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块仓库的内容也在持续迭代更新中,也欢迎各位开发者们贡献自己的使用案例。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例"},"parent":{"relativePath":"develop/module-samples.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/module-samples","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们官方提供了一个模块拓展的案例仓库 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/opensumi-module-samples"}]},{"type":"text","value":", 你可以在模板仓库中学习到如下内容:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"案例"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"API & 文档"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/connection","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"通信案例"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/en/docs/develop/sample/connection-between-browser-and-node","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"connection-between-browser-and-node"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-env","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义终端环境变量案例"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Add custom Terminal enviroment variables"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"如何使用内置组件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/use-antd","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"如何使用 AntD 组件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use OpenSumi antd theme"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/add-welcome-content","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"欢迎页面"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create your welcome page"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/editor-title","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"编辑器右侧菜单拓展"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Create Editor Title Actions"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/editor-title","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"如何使用输出面板"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Logging message on Output panel"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/example/src/browser/i18n/setup.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"i18n"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"How to custom i18n text"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/toggle-panel/browser/toggle-panel.contribution.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"切换面板"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Toggle Panel or Sidebar"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/example/src/node/start-server.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义插件市场源"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Custom Extension Marketplace entrypoint"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/custom-toolbar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义布局"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-view","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义布局视图"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/use-antd","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用 AntD 组件打开文件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"基础 TreeView"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/builtin-services/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Modal API"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"如何使用 IMessageService/IDialogService/IProcessService"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/connection/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用自定义菜单 ID"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/connection/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"添加工具栏菜单"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/editor-empty-component/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义编辑器空组件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"自定义编辑器空组件"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/custom-view/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"添加自定义视图"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/modules/custom-context-menu/README.md","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义上下文菜单或菜单栏菜单"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-menu","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"自定义菜单"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用内置组件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/builtin-services","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用内置服务"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/builtin-events","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"使用内置事件"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/editor-monaco-component","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"在自定义编辑器组件中使用 Monaco"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"-"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块仓库的内容也在持续迭代更新中,也欢迎各位开发者们贡献自己的使用案例。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例"},"parent":{"relativePath":"develop/module-samples.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/sample/connection-between-browser-and-node/page-data.json b/page-data/zh/docs/develop/sample/connection-between-browser-and-node/page-data.json
        index 8205cb9f..75699332 100644
        --- a/page-data/zh/docs/develop/sample/connection-between-browser-and-node/page-data.json
        +++ b/page-data/zh/docs/develop/sample/connection-between-browser-and-node/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/connection-between-browser-and-node","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现前后端的双向通信,我们需要依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" 特殊的服务声明。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先,需要定义一个双向通信的消息唯一通道,我们定义一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoConnectionServerPath"}]},{"type":"text","value":" 作为消息通道的唯一 ID,前后端的服务都通过这个通道进行消息分发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/common/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ITodoConnectionServerPath "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ITodoConnectionServerPath'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"关联前后端服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E8%81%94%E5%89%8D%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1","ariaLabel":"关联前后端服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关联前后端服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先,需要在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":" 上继承 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/node/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在双端的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" 上进行关联。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"关联前端服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E8%81%94%E5%89%8D%E7%AB%AF%E6%9C%8D%E5%8A%A1","ariaLabel":"关联前端服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关联前端服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.service'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TodoService\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    TodoContribution\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  backServices "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      servicePath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 双端通信通道唯一路径"}]},{"type":"text","value":"\n      clientToken"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 关联前端服务"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"关联后端服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E8%81%94%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1","ariaLabel":"关联后端服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关联后端服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/node/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" ITodoConnectionServerPath "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoNodeService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.service'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TodoNodeService\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  backServices "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      servicePath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 双端通信通道唯一路径"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoNodeService "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 关联后端服务"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"实现前后端服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9E%E7%8E%B0%E5%89%8D%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1","ariaLabel":"实现前后端服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"实现前后端服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本案例实现了,在 Todo 项点击的同时,传递消息到后端服务,后端服务在接收到消息时,重新组织消息内容后回传给前端进行消息展示。核心实现如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"前端服务展示消息时同时通知到后端服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" todoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 展示消息时调用后端服务"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 接收后端消息"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"onMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"后端服务接收到消息后回传到前端服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/node/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoNodeService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" RPCService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-connection'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里的 this.rpcClient![0] 可以直接获取到通信通道下的 proxy 实例"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"rpcClient"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"I got you message, echo again. "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"效果展示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA","ariaLabel":"效果展示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01ItcgHk1l0kmoQIjmb_!!6000000004757-1-tps-1200-706.gif","alt":"双向通信"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"自此,我们便完成了整个案例的完整教学。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信"},"parent":{"relativePath":"develop/sample/connection-between-browser-and-node.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/connection-between-browser-and-node","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现前后端的双向通信,我们需要依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" 特殊的服务声明。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先,需要定义一个双向通信的消息唯一通道,我们定义一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoConnectionServerPath"}]},{"type":"text","value":" 作为消息通道的唯一 ID,前后端的服务都通过这个通道进行消息分发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/common/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ITodoConnectionServerPath "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ITodoConnectionServerPath'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"关联前后端服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E8%81%94%E5%89%8D%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1","ariaLabel":"关联前后端服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关联前后端服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先,需要在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":" 上继承 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/node/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在双端的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" 上进行关联。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"关联前端服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E8%81%94%E5%89%8D%E7%AB%AF%E6%9C%8D%E5%8A%A1","ariaLabel":"关联前端服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关联前端服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.service'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TodoService\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    TodoContribution\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  backServices "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      servicePath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 双端通信通道唯一路径"}]},{"type":"text","value":"\n      clientToken"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 关联前端服务"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"关联后端服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E8%81%94%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1","ariaLabel":"关联后端服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关联后端服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/node/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" ITodoConnectionServerPath "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoNodeService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.service'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TodoNodeService\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  backServices "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      servicePath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 双端通信通道唯一路径"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoNodeService "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 关联后端服务"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"实现前后端服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9E%E7%8E%B0%E5%89%8D%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1","ariaLabel":"实现前后端服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"实现前后端服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本案例实现了,在 Todo 项点击的同时,传递消息到后端服务,后端服务在接收到消息时,重新组织消息内容后回传给前端进行消息展示。核心实现如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"前端服务展示消息时同时通知到后端服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoConnectionServerPath"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" todoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 展示消息时调用后端服务"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todoNodeService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 接收后端消息"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"onMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"后端服务接收到消息后回传到前端服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/node/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoNodeService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" RPCService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-connection'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"RPCService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoNodeService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里的 this.rpcClient![0] 可以直接获取到通信通道下的 proxy 实例"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"rpcClient"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"I got you message, echo again. "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"效果展示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA","ariaLabel":"效果展示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01ItcgHk1l0kmoQIjmb_!!6000000004757-1-tps-1200-706.gif","alt":"双向通信"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"自此,我们便完成了整个案例的完整教学。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信"},"parent":{"relativePath":"develop/sample/connection-between-browser-and-node.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/sample/create-module/page-data.json b/page-data/zh/docs/develop/sample/create-module/page-data.json
        index ba7c2df6..ad7aadad 100644
        --- a/page-data/zh/docs/develop/sample/create-module/page-data.json
        +++ b/page-data/zh/docs/develop/sample/create-module/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/create-module","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于 OpenSumi 模块无法独立运行,在创建模块时,我们推荐你在的工程目录外侧建立你的模块目录,以通过快速开始提供的模板仓库为例,你可以快速启动一个 IDE 工程:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-startup.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\t\t\t\t\t   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 安装依赖"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 并行启动前端和后端"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以直接克隆我们的案例项目 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/todo-list-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/todo-list-sample"}]},{"type":"text","value":" 快速进行模块体验。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"目录结构","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84","ariaLabel":"目录结构 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"目录结构"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在具备工程后,你就可以在项目根目录创建一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"modules"}]},{"type":"text","value":" 文件夹用于存放模块文件,基础目录结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n└── workspace                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 工作目录"}]},{"type":"text","value":"\n├── modules                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 存放模块目录"}]},{"type":"text","value":"\n├── extensions                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件目录"}]},{"type":"text","value":"\n├── src\n│   ├── browser\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n├── tsconfig.json\n├── webpack.browser.config.js\n├── webpack.node.config.js\n├── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"创建入口文件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9B%E5%BB%BA%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6","ariaLabel":"创建入口文件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"创建入口文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"modules"}]},{"type":"text","value":" 目录中,我们开始创建我们的前后端入口文件,基本目录结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n└── "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":".."}]},{"type":"text","value":".\n├── modules                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 存放模块目录"}]},{"type":"text","value":"\n│   ├── todo\n│   │   ├── browser\n│   │   │   └── index.ts\n│   │   │   ├── todo.module.less\n│   │   │   └── todo.view.tsx\n│   │   ├── common\n│   │   │   └── index.ts\n│   │   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n│   │   │   └── index.ts\n└── "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":".."}]},{"type":"text","value":"."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"前端模块入口","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E7%AB%AF%E6%A8%A1%E5%9D%97%E5%85%A5%E5%8F%A3","ariaLabel":"前端模块入口 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前端模块入口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"后端模块入口","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%8E%E7%AB%AF%E6%A8%A1%E5%9D%97%E5%85%A5%E5%8F%A3","ariaLabel":"后端模块入口 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"后端模块入口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/node/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"引入自定义模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%95%E5%85%A5%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9D%97","ariaLabel":"引入自定义模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"引入自定义模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们找到框架的前后端入口文件,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common-modules.ts"}]},{"type":"text","value":" 中将我们的自定义模块分别引入。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// src/browser/common-modules.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" CommonBrowserModules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ConstructorOf"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BrowserModule"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"TodoListModule\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// src/node/common-modules.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" CommonNodeModules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ConstructorOf"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"NodeModule"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"TodoListModule\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这样,我们就完成了我们 TodoList 模块的创建及引入。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块"},"parent":{"relativePath":"develop/sample/create-module.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/create-module","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于 OpenSumi 模块无法独立运行,在创建模块时,我们推荐你在的工程目录外侧建立你的模块目录,以通过快速开始提供的模板仓库为例,你可以快速启动一个 IDE 工程:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-startup.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\t\t\t\t\t   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 安装依赖"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 并行启动前端和后端"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以直接克隆我们的案例项目 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/todo-list-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/todo-list-sample"}]},{"type":"text","value":" 快速进行模块体验。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"目录结构","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84","ariaLabel":"目录结构 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"目录结构"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在具备工程后,你就可以在项目根目录创建一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"modules"}]},{"type":"text","value":" 文件夹用于存放模块文件,基础目录结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n└── workspace                   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 工作目录"}]},{"type":"text","value":"\n├── modules                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 存放模块目录"}]},{"type":"text","value":"\n├── extensions                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件目录"}]},{"type":"text","value":"\n├── src\n│   ├── browser\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n├── tsconfig.json\n├── webpack.browser.config.js\n├── webpack.node.config.js\n├── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"创建入口文件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9B%E5%BB%BA%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6","ariaLabel":"创建入口文件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"创建入口文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"modules"}]},{"type":"text","value":" 目录中,我们开始创建我们的前后端入口文件,基本目录结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n└── "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":".."}]},{"type":"text","value":".\n├── modules                     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 存放模块目录"}]},{"type":"text","value":"\n│   ├── todo\n│   │   ├── browser\n│   │   │   └── index.ts\n│   │   │   ├── todo.module.less\n│   │   │   └── todo.view.tsx\n│   │   ├── common\n│   │   │   └── index.ts\n│   │   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n│   │   │   └── index.ts\n└── "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":".."}]},{"type":"text","value":"."}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"前端模块入口","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E7%AB%AF%E6%A8%A1%E5%9D%97%E5%85%A5%E5%8F%A3","ariaLabel":"前端模块入口 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前端模块入口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"后端模块入口","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%8E%E7%AB%AF%E6%A8%A1%E5%9D%97%E5%85%A5%E5%8F%A3","ariaLabel":"后端模块入口 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"后端模块入口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/node/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"引入自定义模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%95%E5%85%A5%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9D%97","ariaLabel":"引入自定义模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"引入自定义模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们找到框架的前后端入口文件,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common-modules.ts"}]},{"type":"text","value":" 中将我们的自定义模块分别引入。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// src/browser/common-modules.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" CommonBrowserModules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ConstructorOf"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BrowserModule"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"TodoListModule\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// src/node/common-modules.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" CommonNodeModules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ConstructorOf"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"NodeModule"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"TodoListModule\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这样,我们就完成了我们 TodoList 模块的创建及引入。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块"},"parent":{"relativePath":"develop/sample/create-module.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/sample/display-list/page-data.json b/page-data/zh/docs/develop/sample/display-list/page-data.json
        index 9634c8e1..5bba0f1d 100644
        --- a/page-data/zh/docs/develop/sample/display-list/page-data.json
        +++ b/page-data/zh/docs/develop/sample/display-list/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/display-list","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了实现一个高性能的列表,我们通常可能需要一些三方库进行实现,而在 OpenSumi 中,我们在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-components"}]},{"type":"text","value":" 中内置实现了诸多通用组件,接下来便展示一下如何通过这些组件渲染我们的 TodoList 列表。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"数据结构","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84","ariaLabel":"数据结构 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"数据结构"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMainLayoutService"}]},{"type":"text","value":" 服务注册的面板中,组件渲染时会默认接收一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"viewState"}]},{"type":"text","value":" 属性,你可以从中获取到整个面板的宽高信息。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"渲染列表","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B8%B2%E6%9F%93%E5%88%97%E8%A1%A8","ariaLabel":"渲染列表 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"渲染列表"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们分别从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-components"}]},{"type":"text","value":" 中引入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"RecycleList"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CheckBox"}]},{"type":"text","value":" 组件,组合后完整代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" styles "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.module.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" RecycleList"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CheckBox "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-components'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"template"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handlerChange"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"splice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todo_item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CheckBox\n          checked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          onChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handlerChange"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"RecycleList\n      height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"height"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      itemHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      template"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"template"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"效果展示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA","ariaLabel":"效果展示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN011vAfYR1PVVpp1V4WI_!!6000000001846-2-tps-2738-1810.png","alt":"List"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下一节,我们将进一步学习如何使用 DI 来使用丰富的框架服务。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表"},"parent":{"relativePath":"develop/sample/display-list.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/display-list","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了实现一个高性能的列表,我们通常可能需要一些三方库进行实现,而在 OpenSumi 中,我们在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-components"}]},{"type":"text","value":" 中内置实现了诸多通用组件,接下来便展示一下如何通过这些组件渲染我们的 TodoList 列表。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"数据结构","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84","ariaLabel":"数据结构 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"数据结构"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMainLayoutService"}]},{"type":"text","value":" 服务注册的面板中,组件渲染时会默认接收一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"viewState"}]},{"type":"text","value":" 属性,你可以从中获取到整个面板的宽高信息。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"渲染列表","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B8%B2%E6%9F%93%E5%88%97%E8%A1%A8","ariaLabel":"渲染列表 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"渲染列表"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们分别从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-components"}]},{"type":"text","value":" 中引入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"RecycleList"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CheckBox"}]},{"type":"text","value":" 组件,组合后完整代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" styles "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.module.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" RecycleList"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CheckBox "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-components'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"template"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handlerChange"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"splice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todo_item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CheckBox\n          checked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          onChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handlerChange"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"RecycleList\n      height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"height"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      itemHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      template"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"template"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"效果展示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA","ariaLabel":"效果展示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN011vAfYR1PVVpp1V4WI_!!6000000001846-2-tps-2738-1810.png","alt":"List"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下一节,我们将进一步学习如何使用 DI 来使用丰富的框架服务。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表"},"parent":{"relativePath":"develop/sample/display-list.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/sample/overview/page-data.json b/page-data/zh/docs/develop/sample/overview/page-data.json
        index 4e5540d7..318c04cd 100644
        --- a/page-data/zh/docs/develop/sample/overview/page-data.json
        +++ b/page-data/zh/docs/develop/sample/overview/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本案例主要通过在 OpenSumi 中实现一个 TodoList 列表的方式,一步一步教你如何从 0 开始开发自己的模块,通过本案例,你将获得下面一些知识点:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何创建模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何展示一个列表"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何通过 DI 使用并注册服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何利用贡献点机制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何实现前后端通信"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们的目标是:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在左侧资源管理器面板中注册一个 TodoList 面板"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"展示 TodoList 列表"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"支持通过快捷键进行 Todo 项的快速添加"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"实现基础的前后端双向通信逻辑"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过该案例的学习,你将能快速入门 OpenSumi 的模块开发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,如果你希望直接查看代码,你也可以直接访问 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/todo-list-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/todo-list-sample"}]},{"type":"text","value":" 仓库,直接运行项目进行学习。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍"},"parent":{"relativePath":"develop/sample/overview.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本案例主要通过在 OpenSumi 中实现一个 TodoList 列表的方式,一步一步教你如何从 0 开始开发自己的模块,通过本案例,你将获得下面一些知识点:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何创建模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何展示一个列表"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何通过 DI 使用并注册服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何利用贡献点机制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"如何实现前后端通信"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们的目标是:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在左侧资源管理器面板中注册一个 TodoList 面板"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"展示 TodoList 列表"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"支持通过快捷键进行 Todo 项的快速添加"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"实现基础的前后端双向通信逻辑"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过该案例的学习,你将能快速入门 OpenSumi 的模块开发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,如果你希望直接查看代码,你也可以直接访问 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/todo-list-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/todo-list-sample"}]},{"type":"text","value":" 仓库,直接运行项目进行学习。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍"},"parent":{"relativePath":"develop/sample/overview.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/sample/use-contribution-point/page-data.json b/page-data/zh/docs/develop/sample/use-contribution-point/page-data.json
        index 79ba6d7a..ce4cff15 100644
        --- a/page-data/zh/docs/develop/sample/use-contribution-point/page-data.json
        +++ b/page-data/zh/docs/develop/sample/use-contribution-point/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/use-contribution-point","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在模块开发中,你可能需要经常与贡献点打交道,在 OpenSumi 中,我们实现了许多关键逻辑的贡献点机制,详细可见:"},{"type":"element","tagName":"a","properties":{"href":"../basic-design/contribution-point"},"children":[{"type":"text","value":"贡献点"}]},{"type":"text","value":" 文档。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了让我们的 TodoList 列表注册在左侧的资源管理器面板上,我们需要使用到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"text","value":" 来进行面板的注册工作。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"创建前端视图","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9B%E5%BB%BA%E5%89%8D%E7%AB%AF%E8%A7%86%E5%9B%BE","ariaLabel":"创建前端视图 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"创建前端视图"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先,我们先编写一个简单的前端展示组件,见:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" styles "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.module.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"h1 className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"Hello world"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"h1"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"创建贡献点","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9B%E5%BB%BA%E8%B4%A1%E7%8C%AE%E7%82%B9","ariaLabel":"创建贡献点 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"创建贡献点"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"创建 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"todo.contribution.ts"}]},{"type":"text","value":" 文件,使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"text","value":" 的贡献点,在 OpenSumi 渲染阶段注册我们的 Todo 面板,见:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.contribution.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer/lib/browser/explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMainLayoutService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Todo "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Todo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'todo-view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Todo'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"上述的代码是在 OpenSumi 的渲染阶段,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMainLayoutService"}]},{"type":"text","value":" 提供的服务能力,在资源管理器面板的视图上,注册上了我们的 Todo 组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,我们还需要在模块的入口文件中,显式声明一下该贡献点文件的引用,如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"TodoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"效果预览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E9%A2%84%E8%A7%88","ariaLabel":"效果预览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果预览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01l3ioLn1wWJr2kidlG_!!6000000006315-2-tps-2738-1810.png","alt":"Hello World"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下一节,我们将进一步学习如何进一步展示我们的 TodoList 列表信息。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点"},"parent":{"relativePath":"develop/sample/use-contribution-point.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/use-contribution-point","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在模块开发中,你可能需要经常与贡献点打交道,在 OpenSumi 中,我们实现了许多关键逻辑的贡献点机制,详细可见:"},{"type":"element","tagName":"a","properties":{"href":"../basic-design/contribution-point"},"children":[{"type":"text","value":"贡献点"}]},{"type":"text","value":" 文档。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了让我们的 TodoList 列表注册在左侧的资源管理器面板上,我们需要使用到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"text","value":" 来进行面板的注册工作。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"创建前端视图","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9B%E5%BB%BA%E5%89%8D%E7%AB%AF%E8%A7%86%E5%9B%BE","ariaLabel":"创建前端视图 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"创建前端视图"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先,我们先编写一个简单的前端展示组件,见:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" styles "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.module.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"h1 className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"Hello world"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"h1"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"创建贡献点","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9B%E5%BB%BA%E8%B4%A1%E7%8C%AE%E7%82%B9","ariaLabel":"创建贡献点 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"创建贡献点"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"创建 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"todo.contribution.ts"}]},{"type":"text","value":" 文件,使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"text","value":" 的贡献点,在 OpenSumi 渲染阶段注册我们的 Todo 面板,见:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.contribution.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer/lib/browser/explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMainLayoutService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Todo "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Todo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'todo-view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Todo'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"上述的代码是在 OpenSumi 的渲染阶段,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMainLayoutService"}]},{"type":"text","value":" 提供的服务能力,在资源管理器面板的视图上,注册上了我们的 Todo 组件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,我们还需要在模块的入口文件中,显式声明一下该贡献点文件的引用,如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"TodoContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"效果预览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E9%A2%84%E8%A7%88","ariaLabel":"效果预览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果预览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01l3ioLn1wWJr2kidlG_!!6000000006315-2-tps-2738-1810.png","alt":"Hello World"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下一节,我们将进一步学习如何进一步展示我们的 TodoList 列表信息。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点"},"parent":{"relativePath":"develop/sample/use-contribution-point.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/develop/sample/use-service-by-di/page-data.json b/page-data/zh/docs/develop/sample/use-service-by-di/page-data.json
        index 792724f3..f1b0dd90 100644
        --- a/page-data/zh/docs/develop/sample/use-service-by-di/page-data.json
        +++ b/page-data/zh/docs/develop/sample/use-service-by-di/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/use-service-by-di","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"DI (依赖注入) 是 OpenSumi 框架的核心机制之一,通过 DI,我们能很容易的实现依赖的解耦及服务的复用,详细介绍可见:"},{"type":"element","tagName":"a","properties":{"href":"../basic-design/dependence-injector"},"children":[{"type":"text","value":"依赖注入"}]},{"type":"text","value":" 文档。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本节内容将从案例出发,注册 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 服务,同时使用框架提供的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" 服务能力,Todo 项切换状态时展示切换信息。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E6%9C%8D%E5%8A%A1","ariaLabel":"注册服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 服务接口:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/common/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ITodoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 服务:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 服务及其对应实现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.service'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用自定义服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9C%8D%E5%8A%A1","ariaLabel":"使用自定义服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用自定义服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在视图中,我们实现了一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" 的 hook 用于在视图层使用 DI 注册的服务,通过在视图中实现如下代码便可获取到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 实例并使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用内置服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E5%86%85%E7%BD%AE%E6%9C%8D%E5%8A%A1","ariaLabel":"使用内置服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用内置服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"消息通知","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B6%88%E6%81%AF%E9%80%9A%E7%9F%A5","ariaLabel":"消息通知 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"消息通知"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内所有的能力基本上都以 DI 的形式存在,我们可以便捷的通过 DI 引入并使用,例如这里我们需要一个消息通知功能,我们便可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" 来获取并使用该能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过在点击 Todo 项的时候绑定触发函数,就可以直接使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" 来展示消息。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"template"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handlerChange"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"splice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Set "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":" to be "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todo_item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CheckBox\n          checked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          onChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handlerChange"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"RecycleList\n      height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"height"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      itemHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      template"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"template"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"效果展示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA","ariaLabel":"效果展示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01kA5rT529ilcreESVL_!!6000000008102-1-tps-1200-706.gif","alt":"消息通知"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"通过快捷键添加项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%B7%BB%E5%8A%A0%E9%A1%B9","ariaLabel":"通过快捷键添加项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过快捷键添加项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"进一步的,我们还可以通过贡献点机制注册命令和快捷键,借助 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IQuickInputService"}]},{"type":"text","value":" 来实现添加 Todo 项的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" IQuickInputService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IQuickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" quickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IQuickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Emitter"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"get"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"addTodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"quickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      placeHolder"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'输入你的计划'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"&&"}]},{"type":"text","value":" param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"fire"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"param"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册命令及快捷键:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.contribution.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  localize\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer/lib/browser/explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMainLayoutService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Todo "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    KeybindingContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" todoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Todo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'todo-view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Todo'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ADD_TODO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addTodo"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cmd+o'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ADD_TODO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在视图中使用自定义服务提供的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"text","value":" ,于是在使用快捷键添加 Todo 项后,新 Todo 项就会渲染在界面中:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" onDidChange "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" disposable "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" value"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      disposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"效果展示-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA-1","ariaLabel":"效果展示 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01kAtflz1KZ6rsycc0r_!!6000000001177-1-tps-1200-706.gif","alt":"快捷键"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下一节,我们将进一步学习如何进行前后端双向通信,来实现双向的服务调用。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务"},"parent":{"relativePath":"develop/sample/use-service-by-di.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/develop/sample/use-service-by-di","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"DI (依赖注入) 是 OpenSumi 框架的核心机制之一,通过 DI,我们能很容易的实现依赖的解耦及服务的复用,详细介绍可见:"},{"type":"element","tagName":"a","properties":{"href":"../basic-design/dependence-injector"},"children":[{"type":"text","value":"依赖注入"}]},{"type":"text","value":" 文档。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本节内容将从案例出发,注册 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 服务,同时使用框架提供的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" 服务能力,Todo 项切换状态时展示切换信息。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E6%9C%8D%E5%8A%A1","ariaLabel":"注册服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 服务接口:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/common/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Symbol"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'ITodoService'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 服务:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 服务及其对应实现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" TodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.service'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoListModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用自定义服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9C%8D%E5%8A%A1","ariaLabel":"使用自定义服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用自定义服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在视图中,我们实现了一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" 的 hook 用于在视图层使用 DI 注册的服务,通过在视图中实现如下代码便可获取到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" 实例并使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用内置服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E5%86%85%E7%BD%AE%E6%9C%8D%E5%8A%A1","ariaLabel":"使用内置服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用内置服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"消息通知","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B6%88%E6%81%AF%E9%80%9A%E7%9F%A5","ariaLabel":"消息通知 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"消息通知"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内所有的能力基本上都以 DI 的形式存在,我们可以便捷的通过 DI 引入并使用,例如这里我们需要一个消息通知功能,我们便可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" 来获取并使用该能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过在点击 Todo 项的时候绑定触发函数,就可以直接使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMessageService"}]},{"type":"text","value":" 来展示消息。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'First Todo'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"template"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handlerChange"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"splice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Set "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":" to be "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todo_item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"CheckBox\n          checked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          onChange"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handlerChange"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"description"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"RecycleList\n      height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"height"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"width"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      itemHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      template"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"template"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"效果展示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA","ariaLabel":"效果展示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01kA5rT529ilcreESVL_!!6000000008102-1-tps-1200-706.gif","alt":"消息通知"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"通过快捷键添加项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%B7%BB%E5%8A%A0%E9%A1%B9","ariaLabel":"通过快捷键添加项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过快捷键添加项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"进一步的,我们还可以通过贡献点机制注册命令和快捷键,借助 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IQuickInputService"}]},{"type":"text","value":" 来实现添加 Todo 项的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.service.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IMessageService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-overlay'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" IQuickInputService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ITodoService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IQuickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" quickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IQuickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Emitter"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Emitter"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"get"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"showMessage"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"message"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"addTodo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"quickInputService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"open"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      placeHolder"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'输入你的计划'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"undefined"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"&&"}]},{"type":"text","value":" param "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!=="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"onDidChangeEmitter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"fire"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"param"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册命令及快捷键:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.contribution.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  localize\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer/lib/browser/explorer-contribution'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMainLayoutService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-main-layout'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'../common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Todo "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./todo.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MainLayoutContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" KeybindingContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TodoContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MainLayoutContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    KeybindingContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" todoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidRender"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"mainLayoutService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"collectViewComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Todo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        collapsed"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'todo-view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Todo'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EXPLORER_CONTAINER_ID"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ADD_TODO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"todoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addTodo"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybindings"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" KeybindingRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'cmd+o'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"TODO_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ADD_TODO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在视图中使用自定义服务提供的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"text","value":" ,于是在使用快捷键添加 Todo 项后,新 Todo 项就会渲染在界面中:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// modules/todo/browser/todo.view.tsx"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"Todo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  viewState\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"PropsWithChildren"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" viewState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewState "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" showMessage"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" onDidChange "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITodoService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" disposable "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidChange"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" newTodos "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"slice"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" value"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        isChecked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTodos"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"newTodos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      disposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"todos"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"效果展示-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA-1","ariaLabel":"效果展示 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"效果展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01kAtflz1KZ6rsycc0r_!!6000000001177-1-tps-1200-706.gif","alt":"快捷键"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下一节,我们将进一步学习如何进行前后端双向通信,来实现双向的服务调用。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务"},"parent":{"relativePath":"develop/sample/use-service-by-di.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/contributes/menubars/page-data.json b/page-data/zh/docs/extension/contributes/menubars/page-data.json
        index 4450a486..1b75cb64 100644
        --- a/page-data/zh/docs/extension/contributes/menubars/page-data.json
        +++ b/page-data/zh/docs/extension/contributes/menubars/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/contributes/menubars","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":"  贡献 顶部菜单(Menubar) 菜单项"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"视图位置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%A7%86%E5%9B%BE%E4%BD%8D%E7%BD%AE","ariaLabel":"视图位置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"视图位置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"位于整体 IDE 顶部区域的菜单,在 Electron 环境下可能略有区别"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01Uwnb991TdzoK9OYAt_!!6000000002406-2-tps-1000-426.png","alt":"Sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"如何注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E6%B3%A8%E5%86%8C","ariaLabel":"如何注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为 menubar 增加单项,可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中的  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":"  字段来注册你的 menubar 项,其中数据结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IContributedMenubarItem"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 作为 menubar-item 的 menu-id, 后续可通过 menus 往这里贡献菜单项"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 展示的文案"}]},{"type":"text","value":"\n  order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 排序因子, 越小越靠前"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其中 id 和 title 是必填项,order 是选填项,不填则按照插件默认激活顺序决定位置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sumiContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menubars\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.clone%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"order\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.commit\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"0_changes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"scmProvider == git\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        ...\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例最终效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01VLQjCz1iP598hWLQO_!!6000000004404-2-tps-1000-397.png","alt":"Sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"常规菜单注册,可见:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.menus","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Menus 贡献点"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars"},"parent":{"relativePath":"extension/contributes/menubars.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/contributes/menubars","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":"  贡献 顶部菜单(Menubar) 菜单项"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"视图位置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%A7%86%E5%9B%BE%E4%BD%8D%E7%BD%AE","ariaLabel":"视图位置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"视图位置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"位于整体 IDE 顶部区域的菜单,在 Electron 环境下可能略有区别"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01Uwnb991TdzoK9OYAt_!!6000000002406-2-tps-1000-426.png","alt":"Sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"如何注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E6%B3%A8%E5%86%8C","ariaLabel":"如何注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为 menubar 增加单项,可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中的  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":"  字段来注册你的 menubar 项,其中数据结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IContributedMenubarItem"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 作为 menubar-item 的 menu-id, 后续可通过 menus 往这里贡献菜单项"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 展示的文案"}]},{"type":"text","value":"\n  order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 排序因子, 越小越靠前"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其中 id 和 title 是必填项,order 是选填项,不填则按照插件默认激活顺序决定位置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sumiContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menubars\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.clone%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"order\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.commit\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"0_changes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"scmProvider == git\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        ...\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例最终效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01VLQjCz1iP598hWLQO_!!6000000004404-2-tps-1000-397.png","alt":"Sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"常规菜单注册,可见:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.menus","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Menus 贡献点"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars"},"parent":{"relativePath":"extension/contributes/menubars.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/contributes/submenus/page-data.json b/page-data/zh/docs/extension/contributes/submenus/page-data.json
        index 6b1cbc52..d692136a 100644
        --- a/page-data/zh/docs/extension/contributes/submenus/page-data.json
        +++ b/page-data/zh/docs/extension/contributes/submenus/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/contributes/submenus","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":"  贡献 子菜单(submenu) 项"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"如何注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E6%B3%A8%E5%86%8C","ariaLabel":"如何注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"需要注册二级菜单时,可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中的  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":"  字段来注册你的 menubar 项,其中数据结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IContributedSubmenuItem"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 作为 submenu-id 的 menu-id, 后续可通过 menus 往这里贡献菜单项"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 展示的文案"}]},{"type":"text","value":"\n  group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其中 id 、title 和 icon 是必填项,group 是选填项,用于定义菜单的分组。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"案例展示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B%E5%B1%95%E7%A4%BA","ariaLabel":"案例展示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以下面注册为例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sumiContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"submenus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.init%\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"tabbar/bottom/common\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.openRepository%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"light\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"resources/icons/light/git.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dark\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"resources/icons/dark/git.svg\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"settings/icon/menu\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_3\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.openRepository%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menubars\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.clone%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"order\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.init\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"config.git.enabled && !scmProvider && gitOpenRepositoryCount == 0 && workspaceFolderCount != 0\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.close\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.commit\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"scmProvider == git\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_3\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.stageAll\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"1_modification\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"底部面板 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tabbar/common/bottom"}]},{"type":"text","value":" 位置下的注册效果:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01yBuGjj1CwS88iXbih_!!6000000000145-2-tps-364-346.png","alt":"Bottom"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"设置按钮 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings/icon/menu"}]},{"type":"text","value":"  位置下的注册效果:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN011kzOGr1fzm26GGINk_!!6000000004078-2-tps-400-216.png","alt":"Settings"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"顶部 TabBar 区域 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tabbar/bottom/common"}]},{"type":"text","value":" 位置下的注册效果:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01smMtJR1krb2T7rYs9_!!6000000004737-0-tps-500-675.jpg","alt":"TabBar"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实际业务应用效果(自定义注册点):"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0110UjX71G8JELfZ9sT_!!6000000000577-2-tps-710-400.png","alt":"Custom"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"常规菜单注册,可见:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.menus","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Menus 贡献点"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus"},"parent":{"relativePath":"extension/contributes/submenus.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/contributes/submenus","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":"  贡献 子菜单(submenu) 项"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"如何注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E6%B3%A8%E5%86%8C","ariaLabel":"如何注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"需要注册二级菜单时,可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中的  "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":"  字段来注册你的 menubar 项,其中数据结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IContributedSubmenuItem"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 作为 submenu-id 的 menu-id, 后续可通过 menus 往这里贡献菜单项"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 展示的文案"}]},{"type":"text","value":"\n  group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  icon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其中 id 、title 和 icon 是必填项,group 是选填项,用于定义菜单的分组。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"案例展示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%88%E4%BE%8B%E5%B1%95%E7%A4%BA","ariaLabel":"案例展示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"案例展示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以下面注册为例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sumiContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"submenus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.init%\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"tabbar/bottom/common\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.openRepository%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"light\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"resources/icons/light/git.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dark\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"resources/icons/dark/git.svg\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"settings/icon/menu\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"my_submenu_3\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.openRepository%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menubars\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%command.clone%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"order\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"menus\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"git_clone_menubar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.init\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"config.git.enabled && !scmProvider && gitOpenRepositoryCount == 0 && workspaceFolderCount != 0\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_1\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.close\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_2\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.commit\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"navigation\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"when\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"scmProvider == git\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my_submenu_3\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"git.stageAll\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"group\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"1_modification\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"底部面板 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tabbar/common/bottom"}]},{"type":"text","value":" 位置下的注册效果:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01yBuGjj1CwS88iXbih_!!6000000000145-2-tps-364-346.png","alt":"Bottom"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"设置按钮 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings/icon/menu"}]},{"type":"text","value":"  位置下的注册效果:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN011kzOGr1fzm26GGINk_!!6000000004078-2-tps-400-216.png","alt":"Settings"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"顶部 TabBar 区域 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tabbar/bottom/common"}]},{"type":"text","value":" 位置下的注册效果:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01smMtJR1krb2T7rYs9_!!6000000004737-0-tps-500-675.jpg","alt":"TabBar"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实际业务应用效果(自定义注册点):"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0110UjX71G8JELfZ9sT_!!6000000000577-2-tps-710-400.png","alt":"Custom"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"常规菜单注册,可见:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.menus","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Menus 贡献点"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus"},"parent":{"relativePath":"extension/contributes/submenus.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/contributes/toolbar/page-data.json b/page-data/zh/docs/extension/contributes/toolbar/page-data.json
        index 2e64f994..170e0612 100644
        --- a/page-data/zh/docs/extension/contributes/toolbar/page-data.json
        +++ b/page-data/zh/docs/extension/contributes/toolbar/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/contributes/toolbar","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于历史原因,当前框架内声明 OpenSumi 贡献点需要使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" 进行声明,在升级至 OpenSumi 2.25.0 版本后,可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":" 进行声明,同时也会兼容旧的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" 声明。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar 默认位于 IDE 顶部菜单栏右侧,根据不同集成方的配置,也可以展现为单独的一栏,类似支付宝小程序开发者工具。如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01vZ7d8C1cyS0IU2qtR_!!6000000003669-2-tps-1685-86.png","alt":"sample1"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qSsHwA21oFZktRttG_!!6000000007031-2-tps-1651-87.png","alt":"sample2"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01cNra151YvvM7eJw2A_!!6000000003122-2-tps-1529-46.png","alt":"sample3"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar 贡献点可以通过 JSON 配置来描述工具栏上的元素,目前支持 button 及 select 两种方式,我们称之为 action,在某些情况下需搭配 Toolbar API 来使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"button-按钮","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#button-%E6%8C%89%E9%92%AE","ariaLabel":"button 按钮 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Button 按钮"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"button 是一个可点击的元素,支持仅图标、图标+文字两种显示模式,用户可以通过设置的方式修改按钮样式。插件中可以通过配置 contributes 的方式自定义按钮样式及其图标等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"button 类型的 action 类型描述如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 注册这个 action 喜好的位置, 如果 strictPosition 存在,这个选项无效\n   *\n   * 规则:\n   * 注: 每个 location 默认存在 _head  _tail 两个group,代表了第一个和最后一个group\n   * 1. 如果提供 group 值, 且 group 不为 _head 和 _tail\n   *    1. 如果 group 已注册, 将其注册在group内,跟随 group 出现\n   *    3. 如果 group 未注册\n   *        1. 如果 location 存在, 它会出现在指定 location 的 _tail\n   *        2. 如果 location 不存在, 它会出现在默认 location 的 _tail\n   * 2. 如果提供 group 值, 且 group 为 _head 或 _tail\n   *    1. 如果 location 已注册, 它会出现在指定 location 的 group 位置。\n   *    2. 如果 location 未注册 它会出现在默认 location 的 group 位置。\n   * 3. 如果仅仅提供 location 值\n   *    1. 如果 location 已注册, 它会出现在指定 location 的 _tail 位置。\n   *    2. 如果 location 未注册 它会出现在默认 location 的 _tail 位置。\n   * 4. 如果什么 position 建议都没有,出现在 默认location 的 _tail\n   *\n   * 真实的位置不会反复计算,仅仅在Toolbar首次渲染时(onStart)计算,或者渲染后 action 注册时计算。\n   * 但是 order 会反复计算。\n   */"}]},{"type":"text","value":"\n  preferredPosition"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n     * location 是指一个工具条单元的位置,由于开天框架的集成不同,在不同的 IDE 集成产品中,\n     * 可能存在不同的 location 可选值。\n     *\n     * 一般来说,桌面版本版默认的位置会有\n     * toolbar-left(工具条左侧)\n     * toolbar-right(工具条右侧)\n     * toolbar-center (工具条中央)\n     *\n     * 在 web 版本的 IDE 上,会额外存在这两个\n     * menu-left (顶部菜单右侧靠左)\n     * menu-right (顶部菜单左侧靠右)\n     *\n     * 其他位置可能需要具体的集成产品提供\n     *\n     * 每个集成产品都会有一个默认的 location,如果找不到 preferredPosition 指定的位置\n     * 则会放到默认的 locaiton\n     */"}]},{"type":"text","value":"\n    location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n     * 多个按钮可以成组,组与组之间会存在分割线表示分割\n     * 目前插件只能注册到集成 IDE 按钮已经存在的组中,而不能自定义组,这个特性可能未来添加\n     * 每个 location 都默认存在 _head 和 _tail 两个内置组,分别用来表示这个位置的最左侧和最右侧\n     * 没有指定 group 的按钮都会默认放到 _tail 中\n     */"}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 如果存在这个值,会永远寻找指定的位置。\n   * 如果这位置无法被找到(比如 location 不存在,或者group不存在),则这个按钮不会被显示\n   */"}]},{"type":"text","value":"\n  strictPosition"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBtnStyle"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 是否显示 Title"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认为 false"}]},{"type":"text","value":"\n  showTitle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon 前景色"}]},{"type":"text","value":"\n  iconForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon 背景色"}]},{"type":"text","value":"\n  iconBackground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// title 前景色"}]},{"type":"text","value":"\n  titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// title 背景色"}]},{"type":"text","value":"\n  titleBackground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 整体背景色"}]},{"type":"text","value":"\n  background"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 样式类型,"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// inline则不会有外边框"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button则为按钮样式"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认为 button"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// inline 模式showTitle会失效, 只显示icon"}]},{"type":"text","value":"\n  btnStyle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'inline'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button 的文本位置样式"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// vertical: 上icon 下文本"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// horizontal: 左icon 右文本"}]},{"type":"text","value":"\n  btnTitleStyle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vertical'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'horizontal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarButtonContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 按钮点击后触发的 command,若不指定,则需要通过 API 绑定事件"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 按钮文案"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 按钮图标路径,相对于插件根目录,如图标在 /path/to/ext/resource/a.svg, 则需写为 resource/a.svg"}]},{"type":"text","value":"\n  iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon 渲染模式,大部分情况下可不填"}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 按钮状态,这里主要指样式,类似声明一组 classname,可通过 API 改变按钮的样式状态"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"&"}]},{"type":"text","value":" IToolbarActionBtnStyle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"定义按钮","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9A%E4%B9%89%E6%8C%89%E9%92%AE","ariaLabel":"定义按钮 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"定义按钮"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":", 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toolbar.actions"}]},{"type":"text","value":" 的方式可以注册一个 button 类型的 action"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 表示类型为 button 的 action"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"打印\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./icons/gua.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"common-start\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定义按钮的几种状态"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"btnTitleStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"horizontal\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// clicked 状态下为灰色"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"showTitle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"btnTitleStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"horizontal\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这会在右侧渲染一个只有图标的按钮。现在点击按钮并不会有任何反应,因为还没有对按钮的点击事件做处理,处理点击事件有两种方式。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"绑定 Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"通过 Toolbar API 获取按钮的实例,监听点击事件"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"绑定-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%BB%91%E5%AE%9A-command","ariaLabel":"绑定 command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"绑定 Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在上述 contributes 的定义中,为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"打印"}]},{"type":"text","value":" 按钮添加一个 command 字段:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"打印\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button-click-command\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件代码中需要注册这个 command,当点击按钮后会自动执行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button-click-command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Print!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例中我们自定义了一组 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clicked"}]},{"type":"text","value":" 状态,通过 Toolbar API 可以在点击时切换为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clicked"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button-click-command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-start'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Bingo!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01iENgIf1YZwLRIc4DT_!!6000000003074-1-tps-1200-805.gif","alt":"button-handle"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"自定义-popover","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89-popover","ariaLabel":"自定义 popover permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义 Popover"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"可以通过声明式的配置在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" 中指定该 Button 点击后弹出的 Popover 组件,代码示例如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// package.json # kaitianContributes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"弹窗 (Popover)\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./icons/book.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"popover-start\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"popover-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"popoverComponent\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"CustomPopover\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"popoverStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"minWidth\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"200\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"minHeight\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"200\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#FF004F\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"组件需要开发者自行实现,并在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/index.ts"}]},{"type":"text","value":" 中导出。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" useEffect "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomPopover"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do something...'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'dispose custom popover...'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div style"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"200"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"200"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" padding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      Hello "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这段代码中,可以从 props 获取一个 context 对象,context 可以通过插件 Node 端调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"actionHandler API"}]},{"type":"text","value":" 来动态更新。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" action "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" kaitian"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sample-start'"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setInterval"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    action"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定时更新 context 值"}]},{"type":"text","value":"\n      name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'World'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" Math"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"round"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Math"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"random"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"100"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1000"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01ybFiIV1Dz275918GL_!!6000000000286-1-tps-1298-706.gif","alt":"popover-sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"select-下拉选项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#select-%E4%B8%8B%E6%8B%89%E9%80%89%E9%A1%B9","ariaLabel":"select 下拉选项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Select 下拉选项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Select 是一个可选择的下拉框,可通过贡献点声明一组值列表,同样可以给 Select 绑定一个 command,或通过 Toolbar API 注册选择事件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Select action 的类型声明如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarSelectContribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select 选中后触发的 command,可在回调函数中获取新的值"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定义一组选项"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 同 button"}]},{"type":"text","value":"\n    iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 显示的文案"}]},{"type":"text","value":"\n    label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 值"}]},{"type":"text","value":"\n    value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认值"}]},{"type":"text","value":"\n  defaultValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 用于对比值是否相等的 key"}]},{"type":"text","value":"\n  optionEqualityKey"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 样式状态"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarSelectStyle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"定义下拉框","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9A%E4%B9%89%E4%B8%8B%E6%8B%89%E6%A1%86","ariaLabel":"定义下拉框 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"定义下拉框"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toolbar.actions"}]},{"type":"text","value":" 的方式可以注册一个 select 类型的 action。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\t"},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  \t"},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"description\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"儿童节送什么吖\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 绑定 do-select command"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"do-select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"common-select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconMaskMode\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select 下拉值列表"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"options\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/icons/gift.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"label\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"礼物\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"value\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"gift\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/icons/book.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"label\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"五年高考\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"value\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"book\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认 state"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"labelForegroundColor\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#FF004F\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"labelForegroundColor\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"绑定-command-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%BB%91%E5%AE%9A-command-1","ariaLabel":"绑定 command 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"绑定 command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例中绑定了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"do-select"}]},{"type":"text","value":" 命令,需要在插件代码中注册该命令。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01tEsczk1y1IOZVebUg_!!6000000006518-1-tps-1200-805.gif","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"更新-options","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9B%B4%E6%96%B0-options","ariaLabel":"更新 options permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"更新 Options"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"text","value":" 获取到 selectHandle 后,可以调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"text","value":" 方法更新其选项列表。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'礼物'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'五年高考'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/book2.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'三年模拟'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book2'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"更新选中项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9B%B4%E6%96%B0%E9%80%89%E4%B8%AD%E9%A1%B9","ariaLabel":"更新选中项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"更新选中项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"text","value":" 获取到 selectHandle 后,可以调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"setSelect"}]},{"type":"text","value":" 方法更新其选项列表。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" kaitian "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kaitian'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'礼物'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'五年高考'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/book2.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'三年模拟'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book2'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSelect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里会选中 \"五年高考\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"示例仓库","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%A4%BA%E4%BE%8B%E4%BB%93%E5%BA%93","ariaLabel":"示例仓库 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"示例仓库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/blob/c993b8b3e47845fe63dc339858ae27a99b3c78c3/toolbar-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - toolbar sample"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar"},"parent":{"relativePath":"extension/contributes/toolbar.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/contributes/toolbar","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于历史原因,当前框架内声明 OpenSumi 贡献点需要使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" 进行声明,在升级至 OpenSumi 2.25.0 版本后,可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes"}]},{"type":"text","value":" 进行声明,同时也会兼容旧的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" 声明。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar 默认位于 IDE 顶部菜单栏右侧,根据不同集成方的配置,也可以展现为单独的一栏,类似支付宝小程序开发者工具。如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01vZ7d8C1cyS0IU2qtR_!!6000000003669-2-tps-1685-86.png","alt":"sample1"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qSsHwA21oFZktRttG_!!6000000007031-2-tps-1651-87.png","alt":"sample2"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01cNra151YvvM7eJw2A_!!6000000003122-2-tps-1529-46.png","alt":"sample3"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar 贡献点可以通过 JSON 配置来描述工具栏上的元素,目前支持 button 及 select 两种方式,我们称之为 action,在某些情况下需搭配 Toolbar API 来使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"button-按钮","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#button-%E6%8C%89%E9%92%AE","ariaLabel":"button 按钮 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Button 按钮"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"button 是一个可点击的元素,支持仅图标、图标+文字两种显示模式,用户可以通过设置的方式修改按钮样式。插件中可以通过配置 contributes 的方式自定义按钮样式及其图标等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"button 类型的 action 类型描述如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 注册这个 action 喜好的位置, 如果 strictPosition 存在,这个选项无效\n   *\n   * 规则:\n   * 注: 每个 location 默认存在 _head  _tail 两个group,代表了第一个和最后一个group\n   * 1. 如果提供 group 值, 且 group 不为 _head 和 _tail\n   *    1. 如果 group 已注册, 将其注册在group内,跟随 group 出现\n   *    3. 如果 group 未注册\n   *        1. 如果 location 存在, 它会出现在指定 location 的 _tail\n   *        2. 如果 location 不存在, 它会出现在默认 location 的 _tail\n   * 2. 如果提供 group 值, 且 group 为 _head 或 _tail\n   *    1. 如果 location 已注册, 它会出现在指定 location 的 group 位置。\n   *    2. 如果 location 未注册 它会出现在默认 location 的 group 位置。\n   * 3. 如果仅仅提供 location 值\n   *    1. 如果 location 已注册, 它会出现在指定 location 的 _tail 位置。\n   *    2. 如果 location 未注册 它会出现在默认 location 的 _tail 位置。\n   * 4. 如果什么 position 建议都没有,出现在 默认location 的 _tail\n   *\n   * 真实的位置不会反复计算,仅仅在Toolbar首次渲染时(onStart)计算,或者渲染后 action 注册时计算。\n   * 但是 order 会反复计算。\n   */"}]},{"type":"text","value":"\n  preferredPosition"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n     * location 是指一个工具条单元的位置,由于开天框架的集成不同,在不同的 IDE 集成产品中,\n     * 可能存在不同的 location 可选值。\n     *\n     * 一般来说,桌面版本版默认的位置会有\n     * toolbar-left(工具条左侧)\n     * toolbar-right(工具条右侧)\n     * toolbar-center (工具条中央)\n     *\n     * 在 web 版本的 IDE 上,会额外存在这两个\n     * menu-left (顶部菜单右侧靠左)\n     * menu-right (顶部菜单左侧靠右)\n     *\n     * 其他位置可能需要具体的集成产品提供\n     *\n     * 每个集成产品都会有一个默认的 location,如果找不到 preferredPosition 指定的位置\n     * 则会放到默认的 locaiton\n     */"}]},{"type":"text","value":"\n    location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n     * 多个按钮可以成组,组与组之间会存在分割线表示分割\n     * 目前插件只能注册到集成 IDE 按钮已经存在的组中,而不能自定义组,这个特性可能未来添加\n     * 每个 location 都默认存在 _head 和 _tail 两个内置组,分别用来表示这个位置的最左侧和最右侧\n     * 没有指定 group 的按钮都会默认放到 _tail 中\n     */"}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 如果存在这个值,会永远寻找指定的位置。\n   * 如果这位置无法被找到(比如 location 不存在,或者group不存在),则这个按钮不会被显示\n   */"}]},{"type":"text","value":"\n  strictPosition"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    location"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBtnStyle"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 是否显示 Title"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认为 false"}]},{"type":"text","value":"\n  showTitle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon 前景色"}]},{"type":"text","value":"\n  iconForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon 背景色"}]},{"type":"text","value":"\n  iconBackground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// title 前景色"}]},{"type":"text","value":"\n  titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// title 背景色"}]},{"type":"text","value":"\n  titleBackground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 整体背景色"}]},{"type":"text","value":"\n  background"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 样式类型,"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// inline则不会有外边框"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button则为按钮样式"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认为 button"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// inline 模式showTitle会失效, 只显示icon"}]},{"type":"text","value":"\n  btnStyle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'inline'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// button 的文本位置样式"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// vertical: 上icon 下文本"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// horizontal: 左icon 右文本"}]},{"type":"text","value":"\n  btnTitleStyle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vertical'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'horizontal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarButtonContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 按钮点击后触发的 command,若不指定,则需要通过 API 绑定事件"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 按钮文案"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 按钮图标路径,相对于插件根目录,如图标在 /path/to/ext/resource/a.svg, 则需写为 resource/a.svg"}]},{"type":"text","value":"\n  iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// icon 渲染模式,大部分情况下可不填"}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 按钮状态,这里主要指样式,类似声明一组 classname,可通过 API 改变按钮的样式状态"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"&"}]},{"type":"text","value":" IToolbarActionBtnStyle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"定义按钮","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9A%E4%B9%89%E6%8C%89%E9%92%AE","ariaLabel":"定义按钮 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"定义按钮"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":", 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toolbar.actions"}]},{"type":"text","value":" 的方式可以注册一个 button 类型的 action"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 表示类型为 button 的 action"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"打印\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./icons/gua.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"common-start\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定义按钮的几种状态"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"btnTitleStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"horizontal\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// clicked 状态下为灰色"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"showTitle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"btnTitleStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"horizontal\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这会在右侧渲染一个只有图标的按钮。现在点击按钮并不会有任何反应,因为还没有对按钮的点击事件做处理,处理点击事件有两种方式。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"绑定 Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"通过 Toolbar API 获取按钮的实例,监听点击事件"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"绑定-command","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%BB%91%E5%AE%9A-command","ariaLabel":"绑定 command permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"绑定 Command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在上述 contributes 的定义中,为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"打印"}]},{"type":"text","value":" 按钮添加一个 command 字段:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"打印\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button-click-command\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件代码中需要注册这个 command,当点击按钮后会自动执行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button-click-command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Print!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例中我们自定义了一组 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clicked"}]},{"type":"text","value":" 状态,通过 Toolbar API 可以在点击时切换为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"clicked"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button-click-command'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-start'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Bingo!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01iENgIf1YZwLRIc4DT_!!6000000003074-1-tps-1200-805.gif","alt":"button-handle"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"自定义-popover","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89-popover","ariaLabel":"自定义 popover permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义 Popover"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"可以通过声明式的配置在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" 中指定该 Button 点击后弹出的 Popover 组件,代码示例如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// package.json # kaitianContributes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"button\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"弹窗 (Popover)\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./icons/book.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"popover-start\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"popover-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"popoverComponent\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"CustomPopover\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"popoverStyle\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"minWidth\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"200\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"minHeight\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"200\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#FF004F\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"titleForeground\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"组件需要开发者自行实现,并在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser/index.ts"}]},{"type":"text","value":" 中导出。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" useEffect "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kaitian-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomPopover"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do something...'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'dispose custom popover...'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div style"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" width"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"200"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" height"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"200"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" padding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"10"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      Hello "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?."}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"button\n        onClick"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'popup.testCommand'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        调用 Command\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这段代码中,可以从 props 获取一个 context 对象,context 可以通过插件 Node 端调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"actionHandler API"}]},{"type":"text","value":" 来动态更新。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Popover 可以从 props.context 中获取到 NodeJS 传入的状态,同时又可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"commands.executeCommand"}]},{"type":"text","value":" 来调用 NodeJS 中注册的 Commands。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" action "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" kaitian"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sample-start'"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  kaitian"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'popup.testCommand'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'command executed'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  action"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    action"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showPopover"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setInterval"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    action"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定时更新 context 值"}]},{"type":"text","value":"\n      name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'World'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" Math"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"round"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Math"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"random"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"100"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1000"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01ybFiIV1Dz275918GL_!!6000000000286-1-tps-1298-706.gif","alt":"popover-sample"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"select-下拉选项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#select-%E4%B8%8B%E6%8B%89%E9%80%89%E9%A1%B9","ariaLabel":"select 下拉选项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Select 下拉选项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Select 是一个可选择的下拉框,可通过贡献点声明一组值列表,同样可以给 Select 绑定一个 command,或通过 Toolbar API 注册选择事件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Select action 的类型声明如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarSelectContribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IToolbarActionBasicContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select 选中后触发的 command,可在回调函数中获取新的值"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定义一组选项"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 同 button"}]},{"type":"text","value":"\n    iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 显示的文案"}]},{"type":"text","value":"\n    label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 值"}]},{"type":"text","value":"\n    value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认值"}]},{"type":"text","value":"\n  defaultValue"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 用于对比值是否相等的 key"}]},{"type":"text","value":"\n  optionEqualityKey"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 样式状态"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarSelectStyle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  defaultState"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"定义下拉框","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9A%E4%B9%89%E4%B8%8B%E6%8B%89%E6%A1%86","ariaLabel":"定义下拉框 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"定义下拉框"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kaitianContributes"}]},{"type":"text","value":" 中声明 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toolbar.actions"}]},{"type":"text","value":" 的方式可以注册一个 select 类型的 action。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n\t"},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  \t"},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"toolbar\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"actions\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"description\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"儿童节送什么吖\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 绑定 do-select command"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"do-select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"common-select\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconMaskMode\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select 下拉值列表"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"options\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/icons/gift.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"label\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"礼物\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"value\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"gift\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"iconPath\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/icons/book.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"label\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"五年高考\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"value\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"book\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"states\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认 state"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"labelForegroundColor\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#FF004F\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"clicked\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n              "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"labelForegroundColor\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"#CCC\""}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"绑定-command-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%BB%91%E5%AE%9A-command-1","ariaLabel":"绑定 command 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"绑定 command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例中绑定了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"do-select"}]},{"type":"text","value":" 命令,需要在插件代码中注册该命令。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01tEsczk1y1IOZVebUg_!!6000000006518-1-tps-1200-805.gif","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"更新-options","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9B%B4%E6%96%B0-options","ariaLabel":"更新 options permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"更新 Options"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"text","value":" 获取到 selectHandle 后,可以调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"text","value":" 方法更新其选项列表。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'礼物'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'五年高考'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/book2.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'三年模拟'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book2'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"更新选中项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9B%B4%E6%96%B0%E9%80%89%E4%B8%AD%E9%A1%B9","ariaLabel":"更新选中项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"更新选中项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"text","value":" 获取到 selectHandle 后,可以调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"setSelect"}]},{"type":"text","value":" 方法更新其选项列表。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" kaitian "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kaitian'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" vlaue "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" toolbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clicked'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Select "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"vlaue"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setOptions"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'礼物'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'五年高考'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/book2.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'三年模拟'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book2'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSelect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里会选中 \"五年高考\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"示例仓库","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%A4%BA%E4%BE%8B%E4%BB%93%E5%BA%93","ariaLabel":"示例仓库 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"示例仓库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/blob/c993b8b3e47845fe63dc339858ae27a99b3c78c3/toolbar-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - toolbar sample"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar"},"parent":{"relativePath":"extension/contributes/toolbar.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/develop/built-in-command/page-data.json b/page-data/zh/docs/extension/develop/built-in-command/page-data.json
        index cc5c4b45..c3bfaf00 100644
        --- a/page-data/zh/docs/extension/develop/built-in-command/page-data.json
        +++ b/page-data/zh/docs/extension/develop/built-in-command/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/built-in-command","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了一套内置命令,部分实现了 VS Code 内置实现的命令,这些命令可能会在某些插件被使用,如果遇到了没有实现的内置命令,可以前往 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Issues"}]},{"type":"text","value":" 提适配需求。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"内置命令集","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%86%85%E7%BD%AE%E5%91%BD%E4%BB%A4%E9%9B%86","ariaLabel":"内置命令集 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"内置命令集"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"命令"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"功能"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"revealInExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"在资源管理器界面定位文件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置 Context 变量值"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"key"}]},{"type":"text","value":":键, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"value"}]},{"type":"text","value":":值"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前激活的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.revertAndCloseActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"恢复当前文件内容同时关闭激活的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"向右拆分当前编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"向下拆分当前编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.newUntitledFile"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"新建临时的编辑器文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeAllEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭所有编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeOtherEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭其他编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.save"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"保存当前文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件并向右拆分"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorOrthogonal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件并向下拆分"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateLeft"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到左侧编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateUp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到顶部编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到右侧编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到底部编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateEditorGroups"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换编辑器组"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.nextEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换至下个文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.previousEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换至上个文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openEditorAtIndex"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"通过下标位置打开编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.revert"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"恢复当前激活的文件内容"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.clear"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"清理当前激活的终端窗口内容"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.toggleTerminal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开/关闭 终端窗口"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.files.action.focusFilesExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开激活的编辑器组"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.open"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件(仅在 Electron 下可用)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.openFolder"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件夹(仅在 Electron 下可用)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.reloadWindow (reload_window)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"重载窗口"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"复制文件绝对路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyRelativeFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"复制文件相对路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openSettings"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开设置面板"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateBack"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"前往上一个编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateForward"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"前往下一个编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.saveAll"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"保存全部文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步入"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOut"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步出"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOver"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步进"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.continue"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试继续"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.run (workbench.action.debug.start)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试运行"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.pause"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试暂停"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.restart"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试重启"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stop"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试终止"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.showAllSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"展示所有符号"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%94%A8%E6%B3%95","ariaLabel":"用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"例如使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.open"}]},{"type":"text","value":" 打开一个带协议的文件"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 参数说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"VSCodeOpen"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  resource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  columnOrOptions"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ViewColumn "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"TextDocumentShowOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nsumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    preserveFocus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    preview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"TextDocumentShowOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-title'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令"},"parent":{"relativePath":"extension/develop/built-in-command.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/built-in-command","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了一套内置命令,部分实现了 VS Code 内置实现的命令,这些命令可能会在某些插件被使用,如果遇到了没有实现的内置命令,可以前往 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Issues"}]},{"type":"text","value":" 提适配需求。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"内置命令集","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%86%85%E7%BD%AE%E5%91%BD%E4%BB%A4%E9%9B%86","ariaLabel":"内置命令集 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"内置命令集"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"命令"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"功能"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"revealInExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"在资源管理器界面定位文件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置 Context 变量值"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"key"}]},{"type":"text","value":":键, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"value"}]},{"type":"text","value":":值"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前激活的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.revertAndCloseActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"恢复当前文件内容同时关闭激活的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"向右拆分当前编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"向下拆分当前编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.newUntitledFile"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"新建临时的编辑器文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeAllEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭所有编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeOtherEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭其他编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.save"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"保存当前文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件并向右拆分"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorOrthogonal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件并向下拆分"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateLeft"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到左侧编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateUp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到顶部编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到右侧编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到底部编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateEditorGroups"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换编辑器组"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.nextEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换至下个文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.previousEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换至上个文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openEditorAtIndex"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"通过下标位置打开编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.revert"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"恢复当前激活的文件内容"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.clear"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"清理当前激活的终端窗口内容"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.toggleTerminal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开/关闭 终端窗口"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.files.action.focusFilesExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开激活的编辑器组"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.open"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件(仅在 Electron 下可用)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.openFolder"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件夹(仅在 Electron 下可用)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.reloadWindow (reload_window)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"重载窗口"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"复制文件绝对路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyRelativeFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"复制文件相对路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openSettings"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开设置面板"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateBack"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"前往上一个编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateForward"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"前往下一个编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.saveAll"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"保存全部文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步入"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOut"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步出"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOver"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步进"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.continue"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试继续"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.run (workbench.action.debug.start)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试运行"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.pause"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试暂停"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.restart"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试重启"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stop"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试终止"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.showAllSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"展示所有符号"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%94%A8%E6%B3%95","ariaLabel":"用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"例如使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.open"}]},{"type":"text","value":" 打开一个带协议的文件"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 参数说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"VSCodeOpen"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  resource"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  columnOrOptions"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ViewColumn "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"TextDocumentShowOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nsumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    preserveFocus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    preview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"TextDocumentShowOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-title'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令"},"parent":{"relativePath":"extension/develop/built-in-command.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/develop/built-in-component/page-data.json b/page-data/zh/docs/extension/develop/built-in-component/page-data.json
        index a576346a..0cae1881 100644
        --- a/page-data/zh/docs/extension/develop/built-in-component/page-data.json
        +++ b/page-data/zh/docs/extension/develop/built-in-component/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/built-in-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内置了一些基础的组件,在 Browser 端插件运行时可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 模块引入这些组件来使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前的内置组件包含:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"├── Badge\n├── Button\n├── Checkbox\n├── Dialog\n├── Icon\n├── Input\n├── Message\n├── Notification\n├── Overlay\n├── Popover\n├── RecycleList\n├── BasicRecycleTree\n├── Scrollbars\n├── Select\n├── Tabs\n├── Tooltip\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"部分使用示例见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Built-in Components"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"其他组件库","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B6%E4%BB%96%E7%BB%84%E4%BB%B6%E5%BA%93","ariaLabel":"其他组件库 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"其他组件库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以在 OpenSumi 中继续使用社区中流行的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AntD"}]},{"type":"text","value":" 组件库,使用时只需要引入我们提供的主题包即可正常使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" —— AntD 基于 OpenSumi 的主题包"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/antd-theme/lib/index.css'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ConfigProvider "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ConfigProvider"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"prefixCls"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"sumi_antd"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"App"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"/>"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其他主题库适配期待社区的贡献。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"自定义适配主题的组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%80%82%E9%85%8D%E4%B8%BB%E9%A2%98%E7%9A%84%E7%BB%84%E4%BB%B6","ariaLabel":"自定义适配主题的组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义适配主题的组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于不满足以上方案的同学,或者期望自行编写 CSS 样式来适配主题,可以参考下面的 Token 表使用对应的 CSS Token,如 Token 为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kt.disableForeground"}]},{"type":"text","value":", 在使用时就可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"var(--kt-disableForeground)"}]},{"type":"text","value":" 引用。"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"区块"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"文档"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"主题色板"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/%E4%B8%BB%E9%A2%98%E8%89%B2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"主题色板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"基础颜色"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/%E5%9F%BA%E7%A1%80%E9%A2%9C%E8%89%B2","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"基础颜色"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Button"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Button-%E6%8C%89%E9%92%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Button 按钮"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Checkbox"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Checkbox-%E5%A4%9A%E9%80%89%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Checkbox 多选框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Input"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Input-%E8%BE%93%E5%85%A5%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Input 输入框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Select"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Select-%E9%80%89%E6%8B%A9%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Select 选择器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Editor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Editor-%E7%BC%96%E8%BE%91%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Editor 编辑器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ActionBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ActionBar-%E6%93%8D%E4%BD%9C%E7%BB%84","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ActionBar 操作组"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ActivityBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ActivityBar-%E5%B7%A6%E5%8F%B3%E4%BE%A7%E6%B4%BB%E5%8A%A8%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ActivityBar 左右侧活动栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Bottom Panel"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Bottom-Panel-%E5%BA%95%E9%83%A8%E9%9D%A2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Bottom Panel 底部面板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Explorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Explorer-%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Explorer 资源管理器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Keybinding"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Keybinding-%E5%BF%AB%E6%8D%B7%E9%94%AE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Keybinding 快捷键页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"MenuBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/MenuBar-%E8%8F%9C%E5%8D%95%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MenuBar 菜单栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Message"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Message-%E5%85%A8%E5%B1%80%E6%8F%90%E7%A4%BA","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Message 全局提示"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Modal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Modal-%E5%AF%B9%E8%AF%9D%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Modal 对话框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Notification"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Notification-%E9%80%9A%E7%9F%A5%E6%8F%90%E9%86%92%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Notification 通知提醒框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Popover"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Popover-%E6%B0%94%E6%B3%A1%E5%8D%A1%E7%89%87","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Popover 气泡卡片"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"SCM"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/SCM-%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"SCM 源代码管理"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Search"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Search-%E6%90%9C%E7%B4%A2","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Search 搜索"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Setting"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Setting-%E8%AE%BE%E7%BD%AE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Setting 设置页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Sidebar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Sidebar-%E4%BE%A7%E8%BE%B9%E6%A0%8F%E9%9D%A2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Sidebar 侧边栏面板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"StatusBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/StatusBar-%E5%BA%95%E9%83%A8%E7%8A%B6%E6%80%81%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"StatusBar 底部状态栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Tab"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Tab-%E6%A0%87%E7%AD%BE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Tab 标签页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ToolBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ToolBar-%E5%B7%A5%E5%85%B7%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ToolBar 工具栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Tooltip"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Tooltip-%E6%96%87%E5%AD%97%E6%8F%90%E7%A4%BA","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Tooltip 文字提示"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"大部分自定义 Token 通常会向下兼容到 VS Code 的 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/theme-color","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Theme Color"}]},{"type":"text","value":",你也可以直接使用这些 Token。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你觉得这部分色值表的定义不能满足你的需求,一方面,你可以考虑为 OpenSumi 提供一个 PR 拓展一下,另一方面,你也可以绕开这部分限制,通过在集成侧处理的方式解决,下面介绍两种常用手段:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"通过-classname-进行样式自定义","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87-classname-%E8%BF%9B%E8%A1%8C%E6%A0%B7%E5%BC%8F%E8%87%AA%E5%AE%9A%E4%B9%89","ariaLabel":"通过 classname 进行样式自定义 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过 ClassName 进行样式自定义"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 ClassName 的作用域进行自定义,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"css"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-css"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-css"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".vs-dark"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"color"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" #fff"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" // 暗色主题下 `.a` 的字体颜色为白色\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".vs"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"color"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" #000"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" // 亮色主题下 `.a` 的字体颜色为黑色\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"使用-code-classlanguage-textregistercolorcode-方法注册自定义-token","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-code-classlanguage-textregistercolorcode-%E6%96%B9%E6%B3%95%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89-token","ariaLabel":"使用 code classlanguage textregistercolorcode 方法注册自定义 token permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"text","value":" 方法注册自定义 Token"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这里需要注意的是需要保证 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"text","value":" 方法的调用在应用启动前,建议放在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"text","value":" 阶段引入。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 入口文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./custom-token'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// custom-token.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registerColor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonClickBackground\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonSelectionForeground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.selectionForeground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Active toolbar button foreground.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonSelectionBackground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.selectionBackground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Active toolbar button background.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonForeground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.foreground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Default toolbar button foreground.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonBackground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.background'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonClickBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonClickBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Default toolbar button background.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用浮动组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E6%B5%AE%E5%8A%A8%E7%BB%84%E4%BB%B6","ariaLabel":"使用浮动组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用浮动组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在编写插件中我们难免会使用浮窗让用户进行二次交互,在 OpenSumi Browser 端中编写这类代码,由于整体方案采用了一种沙箱的隔离机制,插件内的 Browser 层是获取不到顶部的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Document"}]},{"type":"text","value":" 的,故在使用一部分库的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Modal"}]},{"type":"text","value":" 、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":" 、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Select"}]},{"type":"text","value":" 等带浮动属性的组件时,你需要重新为这类组件绑定一个渲染容器。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以 AntD 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Modal"}]},{"type":"text","value":" 组件为例,你在使用时需要传入一下当前组件的渲染容器,否则对应的组件将不能正常工作。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Modal"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"title"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"Basic Modal"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"ref"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件"},"parent":{"relativePath":"extension/develop/built-in-component.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/built-in-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内置了一些基础的组件,在 Browser 端插件运行时可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 模块引入这些组件来使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前的内置组件包含:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"├── Badge\n├── Button\n├── Checkbox\n├── Dialog\n├── Icon\n├── Input\n├── Message\n├── Notification\n├── Overlay\n├── Popover\n├── RecycleList\n├── BasicRecycleTree\n├── Scrollbars\n├── Select\n├── Tabs\n├── Tooltip\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"部分使用示例见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/components","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Use Built-in Components"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"其他组件库","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B6%E4%BB%96%E7%BB%84%E4%BB%B6%E5%BA%93","ariaLabel":"其他组件库 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"其他组件库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以在 OpenSumi 中继续使用社区中流行的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"AntD"}]},{"type":"text","value":" 组件库,使用时只需要引入我们提供的主题包即可正常使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" —— AntD 基于 OpenSumi 的主题包"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/antd-theme/lib/index.css'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ConfigProvider "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ConfigProvider"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"prefixCls"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"sumi_antd"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"App"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"/>"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其他主题库适配期待社区的贡献。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"自定义适配主题的组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%80%82%E9%85%8D%E4%B8%BB%E9%A2%98%E7%9A%84%E7%BB%84%E4%BB%B6","ariaLabel":"自定义适配主题的组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义适配主题的组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于不满足以上方案的同学,或者期望自行编写 CSS 样式来适配主题,可以参考下面的 Token 表使用对应的 CSS Token,如 Token 为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"kt.disableForeground"}]},{"type":"text","value":", 在使用时就可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"var(--kt-disableForeground)"}]},{"type":"text","value":" 引用。"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"区块"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"文档"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"主题色板"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/%E4%B8%BB%E9%A2%98%E8%89%B2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"主题色板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"基础颜色"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/%E5%9F%BA%E7%A1%80%E9%A2%9C%E8%89%B2","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"基础颜色"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Button"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Button-%E6%8C%89%E9%92%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Button 按钮"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Checkbox"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Checkbox-%E5%A4%9A%E9%80%89%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Checkbox 多选框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Input"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Input-%E8%BE%93%E5%85%A5%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Input 输入框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Select"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Select-%E9%80%89%E6%8B%A9%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Select 选择器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Editor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Editor-%E7%BC%96%E8%BE%91%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Editor 编辑器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ActionBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ActionBar-%E6%93%8D%E4%BD%9C%E7%BB%84","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ActionBar 操作组"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ActivityBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ActivityBar-%E5%B7%A6%E5%8F%B3%E4%BE%A7%E6%B4%BB%E5%8A%A8%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ActivityBar 左右侧活动栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Bottom Panel"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Bottom-Panel-%E5%BA%95%E9%83%A8%E9%9D%A2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Bottom Panel 底部面板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Explorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Explorer-%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E5%99%A8","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Explorer 资源管理器"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Keybinding"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Keybinding-%E5%BF%AB%E6%8D%B7%E9%94%AE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Keybinding 快捷键页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"MenuBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/MenuBar-%E8%8F%9C%E5%8D%95%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MenuBar 菜单栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Message"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Message-%E5%85%A8%E5%B1%80%E6%8F%90%E7%A4%BA","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Message 全局提示"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Modal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Modal-%E5%AF%B9%E8%AF%9D%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Modal 对话框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Notification"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Notification-%E9%80%9A%E7%9F%A5%E6%8F%90%E9%86%92%E6%A1%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Notification 通知提醒框"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Popover"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Popover-%E6%B0%94%E6%B3%A1%E5%8D%A1%E7%89%87","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Popover 气泡卡片"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"SCM"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/SCM-%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"SCM 源代码管理"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Search"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Search-%E6%90%9C%E7%B4%A2","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Search 搜索"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Setting"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Setting-%E8%AE%BE%E7%BD%AE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Setting 设置页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Sidebar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Sidebar-%E4%BE%A7%E8%BE%B9%E6%A0%8F%E9%9D%A2%E6%9D%BF","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Sidebar 侧边栏面板"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"StatusBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/StatusBar-%E5%BA%95%E9%83%A8%E7%8A%B6%E6%80%81%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"StatusBar 底部状态栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Tab"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Tab-%E6%A0%87%E7%AD%BE%E9%A1%B5","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Tab 标签页"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"ToolBar"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/ToolBar-%E5%B7%A5%E5%85%B7%E6%A0%8F","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ToolBar 工具栏"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Tooltip"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/wiki/Tooltip-%E6%96%87%E5%AD%97%E6%8F%90%E7%A4%BA","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Tooltip 文字提示"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"大部分自定义 Token 通常会向下兼容到 VS Code 的 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/theme-color","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Theme Color"}]},{"type":"text","value":",你也可以直接使用这些 Token。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你觉得这部分色值表的定义不能满足你的需求,一方面,你可以考虑为 OpenSumi 提供一个 PR 拓展一下,另一方面,你也可以绕开这部分限制,通过在集成侧处理的方式解决,下面介绍两种常用手段:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"通过-classname-进行样式自定义","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87-classname-%E8%BF%9B%E8%A1%8C%E6%A0%B7%E5%BC%8F%E8%87%AA%E5%AE%9A%E4%B9%89","ariaLabel":"通过 classname 进行样式自定义 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过 ClassName 进行样式自定义"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 ClassName 的作用域进行自定义,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"css"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-css"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-css"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".vs-dark"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"color"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" #fff"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" // 暗色主题下 `.a` 的字体颜色为白色\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".vs"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","selector"]},"children":[{"type":"text","value":".a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"color"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" #000"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" // 亮色主题下 `.a` 的字体颜色为黑色\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"使用-code-classlanguage-textregistercolorcode-方法注册自定义-token","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-code-classlanguage-textregistercolorcode-%E6%96%B9%E6%B3%95%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89-token","ariaLabel":"使用 code classlanguage textregistercolorcode 方法注册自定义 token permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"text","value":" 方法注册自定义 Token"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这里需要注意的是需要保证 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"text","value":" 方法的调用在应用启动前,建议放在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"text","value":" 阶段引入。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 入口文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./custom-token'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// custom-token.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registerColor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ktPrimaryButtonClickBackground\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-theme'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonSelectionForeground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.selectionForeground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Active toolbar button foreground.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonSelectionBackground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.selectionBackground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Active toolbar button background.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonForeground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.foreground'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonForeground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Default toolbar button foreground.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" ktToolbarButtonBackground "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerColor"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'kt.toolbarButton.background'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    dark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonClickBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    light"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ktPrimaryButtonClickBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcDark"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    hcLight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Default toolbar button background.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用浮动组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E6%B5%AE%E5%8A%A8%E7%BB%84%E4%BB%B6","ariaLabel":"使用浮动组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用浮动组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在编写插件中我们难免会使用浮窗让用户进行二次交互,在 OpenSumi Browser 端中编写这类代码,由于整体方案采用了一种沙箱的隔离机制,插件内的 Browser 层是获取不到顶部的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Document"}]},{"type":"text","value":" 的,故在使用一部分库的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Modal"}]},{"type":"text","value":" 、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":" 、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Select"}]},{"type":"text","value":" 等带浮动属性的组件时,你需要重新为这类组件绑定一个渲染容器。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以 AntD 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Modal"}]},{"type":"text","value":" 组件为例,你在使用时需要传入一下当前组件的渲染容器,否则对应的组件将不能正常工作。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Modal"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"title"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"Basic Modal"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"ref"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"p"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"Some contents..."}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件"},"parent":{"relativePath":"extension/develop/built-in-component.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/develop/built-in-icon/page-data.json b/page-data/zh/docs/extension/develop/built-in-icon/page-data.json
        index 3236fd27..2bbf0a04 100644
        --- a/page-data/zh/docs/extension/develop/built-in-icon/page-data.json
        +++ b/page-data/zh/docs/extension/develop/built-in-icon/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/built-in-icon","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了一套内置的图标集,这些图标是基于 "},{"type":"element","tagName":"a","properties":{"href":"https://www.iconfont.cn/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"iconfont"}]},{"type":"text","value":" 维护的,在注册视图等面板时可以直接使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"iconClass: "}]},{"type":"text","value":" 来引用这些图标。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"图标集在线预览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9B%BE%E6%A0%87%E9%9B%86%E5%9C%A8%E7%BA%BF%E9%A2%84%E8%A7%88","ariaLabel":"图标集在线预览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"图标集在线预览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01zxObcW27Z25ygkmuZ_!!6000000007810-2-tps-2920-1566.png","alt":"Built-in Icon"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在线地址:"},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.github.io/core/iconfont.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi built-in icon list"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标"},"parent":{"relativePath":"extension/develop/built-in-icon.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/built-in-icon","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了一套内置的图标集,这些图标是基于 "},{"type":"element","tagName":"a","properties":{"href":"https://www.iconfont.cn/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"iconfont"}]},{"type":"text","value":" 维护的,在注册视图等面板时可以直接使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"iconClass: "}]},{"type":"text","value":" 来引用这些图标。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"图标集在线预览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9B%BE%E6%A0%87%E9%9B%86%E5%9C%A8%E7%BA%BF%E9%A2%84%E8%A7%88","ariaLabel":"图标集在线预览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"图标集在线预览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01zxObcW27Z25ygkmuZ_!!6000000007810-2-tps-2920-1566.png","alt":"Built-in Icon"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在线地址:"},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.github.io/core/iconfont.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi built-in icon list"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标"},"parent":{"relativePath":"extension/develop/built-in-icon.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/develop/connection-mode/page-data.json b/page-data/zh/docs/extension/develop/connection-mode/page-data.json
        index 686b16fb..f95cfd8e 100644
        --- a/page-data/zh/docs/extension/develop/connection-mode/page-data.json
        +++ b/page-data/zh/docs/extension/develop/connection-mode/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/connection-mode","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件支持 Browser 及 Node 环境下的扩展,一般的我们建议在 Browser 层仅注册视图,在 Node 层编写插件业务逻辑。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"前后端通信","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E5%90%8E%E7%AB%AF%E9%80%9A%E4%BF%A1","ariaLabel":"前后端通信 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前后端通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01jgVXs41u6YSrFgIZY_!!6000000005988-2-tps-362-120.png","alt":"Click"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"考虑以上场景,我希望在点击按钮时弹出一个错误弹窗,这需要在插件 Browser 层声明一个位于左侧区域的按钮,同时在插件 Node 层实现弹出错误的逻辑。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"borwser-层实现","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#borwser-%E5%B1%82%E5%AE%9E%E7%8E%B0","ariaLabel":"borwser 层实现 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Borwser 层实现"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/browser/Leftview.tsx"}]},{"type":"text","value":" 下实现组件:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/browser/Leftview.tsx"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Button "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@ali/ide-components'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" Leftview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IComponentProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"INodeService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  sumiExtendService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" defaultTitle "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Click'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"title"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTitle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"defaultTitle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidUpdateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"val"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"defaultTitle "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"' '"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" val"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        updateTitle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" onDidUpdateTitle\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumiExtendService.node 包含一份该插件注册的 API Proxy"}]},{"type":"text","value":"\n    sumiExtendService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"node"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Button"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"size"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"small"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handleClick"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"Title"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/browser/index.ts"}]},{"type":"text","value":" 下导出组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Leftview "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./toolbar-button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Leftview "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中声明组件渲染位置及方式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// package.json"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"browserMain\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./out/browser/index.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"nodeMain\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./out/node/index.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"viewsProxies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Leftview\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"browserViews\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"left\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"add\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"view\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Leftview\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"extension\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这段代码中,我们声明了一个视图,其渲染位置为左侧边栏位置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在组件中我们为按钮绑定了一个事件处理函数,点击时调用来自 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"props.sumiExtendService.node"}]},{"type":"text","value":" 上的方法 (请注意,这是一个插件 Node 层 API 的代理,这段代码并不会直接在 Node 环境中运行)。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,我们也在 Browser 层绑定了一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"text","value":" 方法,该方法也可以在后续的 Node 层代码中被调用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-层实现","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-%E5%B1%82%E5%AE%9E%E7%8E%B0","ariaLabel":"node 层实现 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node 层实现"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumi node API (extends vscode)"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ExtensionContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" componentProxy"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" registerExtendModuleService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerExtendModuleService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 调用 Leftview 组件中注册的 `updateTitle` 方法"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" componentProxy"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Leftview"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello sumi Extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello sumi Extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这段代码中,我们在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" 函数里调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerExtendModuleService"}]},{"type":"text","value":" 注册了一个名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"text","value":" 的方法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这样既可在 OpenSumi 插件中通过前端调用 Node 层的方法,你也可以将复杂的逻辑封装在 Node 环境的插件里,避免在 UI 插件中运行过多的任务导致界面卡顿。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,我们需要在 Node 层也可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"componentProxy"}]},{"type":"text","value":" 获取到在前端组件中通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendSet"}]},{"type":"text","value":" 绑定的前端方法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"最终的运行效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01rQT5p11bgl4Y5Jiau_!!6000000003495-1-tps-960-518.gif","alt":"Preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用-command-实现前后端通信","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-command-%E5%AE%9E%E7%8E%B0%E5%89%8D%E5%90%8E%E7%AB%AF%E9%80%9A%E4%BF%A1","ariaLabel":"使用 command 实现前后端通信 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 Command 实现前后端通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了上述方式外,也可以使用我们更为熟悉的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"command"}]},{"type":"text","value":" 机制来实现前后端通信,command 是 OpenSumi 和 VS Code 中非常重要且常见的一种机制,使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"text","value":" 与 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" 两个方法来注册与执行命令,OpenSumi 在前端 API 中也提供了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" 方法(为降低复杂度,暂不提供 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"text","value":" 方法)。这样一来,你可以在前端通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" 来调用 Node 层注册的命令。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node 环境"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"regiterCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'getProjectType'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 前端环境"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyProjectView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handleGetProjectType "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'getProjectType'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"then"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Button onClick"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handleGetProjectType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"Get Project Type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件间通信","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E9%97%B4%E9%80%9A%E4%BF%A1","ariaLabel":"插件间通信 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件间通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 VS Code 插件中,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" 函数返回一组对象的方式,可以对外暴露 API,对于其他插件,可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.extensions.getExtension"}]},{"type":"text","value":" 来获取到插件实例,并且可以调用这些 API。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如插件 A 在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" 函数中暴露了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"text","value":" 接口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 返回 sayHello"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件 B 中就可以这样使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" exta "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'{插件 A 的 ID}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 如 `opensumi.a`"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"exports"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 调用 sayHello"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 插件的 Node 层,同样可以使用这种方式来进行相互调用,而访问 OpenSumi 插件 Node 层的属性名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"exetndsExports"}]},{"type":"text","value":" ,与 VS Code 有所区分。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同样的,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/node/index.ts"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" 方法返回对象:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 返回 sayHello"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在另外一个插件就可以这样使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" exta "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'{插件 A 的 ID}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 如 `opensumi.a`"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extendExports"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 调用 sayHello"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型"},"parent":{"relativePath":"extension/develop/connection-mode.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/connection-mode","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件支持 Browser 及 Node 环境下的扩展,一般的我们建议在 Browser 层仅注册视图,在 Node 层编写插件业务逻辑。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"前后端通信","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E5%90%8E%E7%AB%AF%E9%80%9A%E4%BF%A1","ariaLabel":"前后端通信 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前后端通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01jgVXs41u6YSrFgIZY_!!6000000005988-2-tps-362-120.png","alt":"Click"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"考虑以上场景,我希望在点击按钮时弹出一个错误弹窗,这需要在插件 Browser 层声明一个位于左侧区域的按钮,同时在插件 Node 层实现弹出错误的逻辑。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"borwser-层实现","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#borwser-%E5%B1%82%E5%AE%9E%E7%8E%B0","ariaLabel":"borwser 层实现 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Borwser 层实现"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/browser/Leftview.tsx"}]},{"type":"text","value":" 下实现组件:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/browser/Leftview.tsx"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Button "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@ali/ide-components'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" Leftview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IComponentProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"INodeService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  sumiExtendService\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" defaultTitle "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Click'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"title"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" setTitle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useState"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"defaultTitle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onDidUpdateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"val"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"defaultTitle "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"' '"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" val"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        updateTitle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" onDidUpdateTitle\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"handleClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumiExtendService.node 包含一份该插件注册的 API Proxy"}]},{"type":"text","value":"\n    sumiExtendService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"node"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Button"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"size"}]},{"type":"element","tagName":"span","properties":{"className":["token","attr-value"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation","attr-equals"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]},{"type":"text","value":"small"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\""}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handleClick"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"Title"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/browser/index.ts"}]},{"type":"text","value":" 下导出组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/browser/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Leftview "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./toolbar-button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Leftview "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中声明组件渲染位置及方式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// package.json"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"kaitianContributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"browserMain\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./out/browser/index.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"nodeMain\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"./out/node/index.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"viewsProxies\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Leftview\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"browserViews\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"left\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"add\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"view\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"id\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Leftview\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n            "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"extension\""}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这段代码中,我们声明了一个视图,其渲染位置为左侧边栏位置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在组件中我们为按钮绑定了一个事件处理函数,点击时调用来自 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"props.sumiExtendService.node"}]},{"type":"text","value":" 上的方法 (请注意,这是一个插件 Node 层 API 的代理,这段代码并不会直接在 Node 环境中运行)。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,我们也在 Browser 层绑定了一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"text","value":" 方法,该方法也可以在后续的 Node 层代码中被调用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"node-层实现","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-%E5%B1%82%E5%AE%9E%E7%8E%B0","ariaLabel":"node 层实现 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node 层实现"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// extend/node/index.ts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumi node API (extends vscode)"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ExtensionContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" componentProxy"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" registerExtendModuleService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerExtendModuleService"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 调用 Leftview 组件中注册的 `updateTitle` 方法"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" componentProxy"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Leftview"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"updateTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello sumi Extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello sumi Extension'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这段代码中,我们在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" 函数里调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerExtendModuleService"}]},{"type":"text","value":" 注册了一个名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"text","value":" 的方法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这样既可在 OpenSumi 插件中通过前端调用 Node 层的方法,你也可以将复杂的逻辑封装在 Node 环境的插件里,避免在 UI 插件中运行过多的任务导致界面卡顿。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,我们需要在 Node 层也可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"componentProxy"}]},{"type":"text","value":" 获取到在前端组件中通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendSet"}]},{"type":"text","value":" 绑定的前端方法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"最终的运行效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01rQT5p11bgl4Y5Jiau_!!6000000003495-1-tps-960-518.gif","alt":"Preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用-command-实现前后端通信","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-command-%E5%AE%9E%E7%8E%B0%E5%89%8D%E5%90%8E%E7%AB%AF%E9%80%9A%E4%BF%A1","ariaLabel":"使用 command 实现前后端通信 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 Command 实现前后端通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了上述方式外,也可以使用我们更为熟悉的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"command"}]},{"type":"text","value":" 机制来实现前后端通信,command 是 OpenSumi 和 VS Code 中非常重要且常见的一种机制,使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"text","value":" 与 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" 两个方法来注册与执行命令,OpenSumi 在前端 API 中也提供了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" 方法(为降低复杂度,暂不提供 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"text","value":" 方法)。这样一来,你可以在前端通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"text","value":" 来调用 Node 层注册的命令。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node 环境"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"regiterCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'getProjectType'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 前端环境"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyProjectView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" handleGetProjectType "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'getProjectType'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"then"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"res "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Button onClick"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"handleGetProjectType"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"Get Project Type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件间通信","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E9%97%B4%E9%80%9A%E4%BF%A1","ariaLabel":"插件间通信 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件间通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 VS Code 插件中,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" 函数返回一组对象的方式,可以对外暴露 API,对于其他插件,可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.extensions.getExtension"}]},{"type":"text","value":" 来获取到插件实例,并且可以调用这些 API。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如插件 A 在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" 函数中暴露了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"text","value":" 接口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 返回 sayHello"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件 B 中就可以这样使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" exta "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'{插件 A 的 ID}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 如 `opensumi.a`"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"exports"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 调用 sayHello"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 插件的 Node 层,同样可以使用这种方式来进行相互调用,而访问 OpenSumi 插件 Node 层的属性名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"exetndsExports"}]},{"type":"text","value":" ,与 VS Code 有所区分。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同样的,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"extend/node/index.ts"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"activate"}]},{"type":"text","value":" 方法返回对象:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 返回 sayHello"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在另外一个插件就可以这样使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" exta "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'{插件 A 的 ID}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 如 `opensumi.a`"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  exta"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extendExports"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sayHello"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 调用 sayHello"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型"},"parent":{"relativePath":"extension/develop/connection-mode.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/develop/view-isolate/page-data.json b/page-data/zh/docs/extension/develop/view-isolate/page-data.json
        index 4b89f242..d103ca01 100644
        --- a/page-data/zh/docs/extension/develop/view-isolate/page-data.json
        +++ b/page-data/zh/docs/extension/develop/view-isolate/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/view-isolate","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h4","properties":{"id":"样式失效问题","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A0%B7%E5%BC%8F%E5%A4%B1%E6%95%88%E9%97%AE%E9%A2%98","ariaLabel":"样式失效问题 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"样式失效问题"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于一些常见的组件库(如 antd),当使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Overlay"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Popover"}]},{"type":"text","value":" 等组件时,它们会在组件树的顶层通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createPortal"}]},{"type":"text","value":" 的方式插入一个根节点。由于 portal 的特性,这些组件会被插入到插件视图槽(即插件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":")之外。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,由于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":" 的隔离性,插件中对这些组件的自定义样式会无效。这是因为插件的 head 样式只会被插入到它自身所在的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":" 内。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@ali/ide-components"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Overlay"}]},{"type":"text","value":" 等组件,当插件中使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import * as kaitian from 'kaitian-browser'"}]},{"type":"text","value":" 导入时,会为 Portal 类的组件创建一个新的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":",并将样式单独注入到 Portal 的上下文中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01YrLPCf24SDLpkmCO6_!!6000000007389-2-tps-1342-332.png","alt":"ide-components"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而对于 antd,这类组件一般会提供一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"text","value":" 的属性,用于指定它们所挂载的 DOM 根节点,可以将 Container 设置为插件所注册组件的根元素。例如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"jsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// antd Modal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Modal "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/modal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Modal"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// antd Popover"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Popover "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/popover'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Popover"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getPopupDomNode"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"最终的渲染效果如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01l27JZS1MAxKoIAv63_!!6000000001395-2-tps-1300-914.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"事件问题","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BA%8B%E4%BB%B6%E9%97%AE%E9%A2%98","ariaLabel":"事件问题 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"事件问题"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于 React 基于事件委托实现的合成事件依赖 DOM 树根节点,在某些组件中(如 antd/popover)可能无法捕获到其子组件冒泡上来的事件(具体原因还在排查中)。这会导致这类组件的子组件的事件处理程序失效。建议使用 "},{"type":"element","tagName":"a","properties":{"href":"https://npm.alibaba-inc.com/package/react-shadow-dom-retarget-events","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"react-shadow-dom-retarget-events"}]},{"type":"text","value":" 手动将事件委托的根节点指定为上述的 container 组件。例如"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"jsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Popover "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/popover'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" retargetEvents "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react-shadow-dom-retarget-events'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Popover"}]}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getPopupDomNode"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"retargetEvents"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n        "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项"},"parent":{"relativePath":"extension/develop/view-isolate.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/develop/view-isolate","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h4","properties":{"id":"样式失效问题","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A0%B7%E5%BC%8F%E5%A4%B1%E6%95%88%E9%97%AE%E9%A2%98","ariaLabel":"样式失效问题 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"样式失效问题"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于一些常见的组件库(如 antd),当使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Overlay"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Popover"}]},{"type":"text","value":" 等组件时,它们会在组件树的顶层通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createPortal"}]},{"type":"text","value":" 的方式插入一个根节点。由于 portal 的特性,这些组件会被插入到插件视图槽(即插件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":")之外。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,由于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":" 的隔离性,插件中对这些组件的自定义样式会无效。这是因为插件的 head 样式只会被插入到它自身所在的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":" 内。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@ali/ide-components"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Dialog"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Overlay"}]},{"type":"text","value":" 等组件,当插件中使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"import * as kaitian from 'kaitian-browser'"}]},{"type":"text","value":" 导入时,会为 Portal 类的组件创建一个新的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDOM"}]},{"type":"text","value":",并将样式单独注入到 Portal 的上下文中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01YrLPCf24SDLpkmCO6_!!6000000007389-2-tps-1342-332.png","alt":"ide-components"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而对于 antd,这类组件一般会提供一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"text","value":" 的属性,用于指定它们所挂载的 DOM 根节点,可以将 Container 设置为插件所注册组件的根元素。例如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"jsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// antd Modal"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Modal "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/modal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Modal"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getContainer"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// antd Popover"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Popover "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/popover'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Popover"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getPopupDomNode"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"最终的渲染效果如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01l27JZS1MAxKoIAv63_!!6000000001395-2-tps-1300-914.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"事件问题","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BA%8B%E4%BB%B6%E9%97%AE%E9%A2%98","ariaLabel":"事件问题 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"事件问题"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于 React 基于事件委托实现的合成事件依赖 DOM 树根节点,在某些组件中(如 antd/popover)可能无法捕获到其子组件冒泡上来的事件(具体原因还在排查中)。这会导致这类组件的子组件的事件处理程序失效。建议使用 "},{"type":"element","tagName":"a","properties":{"href":"https://npm.alibaba-inc.com/package/react-shadow-dom-retarget-events","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"react-shadow-dom-retarget-events"}]},{"type":"text","value":" 手动将事件委托的根节点指定为上述的 container 组件。例如"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"jsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-jsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" Popover "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'antd/lib/popover'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" retargetEvents "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react-shadow-dom-retarget-events'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" rootRef "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createRef"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"null"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"ref"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Popover"}]}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"getPopupDomNode"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"retargetEvents"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" rootRef"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"current"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n        "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"content"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项"},"parent":{"relativePath":"extension/develop/view-isolate.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/interface/custom-editor-component/page-data.json b/page-data/zh/docs/extension/interface/custom-editor-component/page-data.json
        index 684b675e..0d0886ba 100644
        --- a/page-data/zh/docs/extension/interface/custom-editor-component/page-data.json
        +++ b/page-data/zh/docs/extension/interface/custom-editor-component/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/custom-editor-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 的 Browser 插件中,支持通过指定 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scheme"}]},{"type":"text","value":" 的方式自定义编辑器区域的组件,这个功能类似 VS Code 的 Webview API,不同之处在于,这里的编辑器组件可以是一个 React 组件的形式。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C","ariaLabel":"注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册一个编辑器组件,需要提供自定义的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scheme"}]},{"type":"text","value":" , 打开这个组件可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.commands.executeCommand"}]},{"type":"text","value":" 执行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.open"}]},{"type":"text","value":",注意这里执行需要在插件 Node 层逻辑。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomEditor"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'custom editor'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  editor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'add'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 建议保持唯一"}]},{"type":"text","value":"\n        panel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CustomEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        tabIconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'path/to/icon.svg'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// node/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component://?${args}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.commands.executeCommand"}]},{"type":"text","value":" 执行命令打开编辑器时可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"queryString"}]},{"type":"text","value":" 传入参数,这些参数会作为编辑器组件的 props 在 Browser 侧传入。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"特殊用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%89%B9%E6%AE%8A%E7%94%A8%E6%B3%95","ariaLabel":"特殊用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"特殊用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"获取信息及状态控制","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%8E%B7%E5%8F%96%E4%BF%A1%E6%81%AF%E5%8F%8A%E7%8A%B6%E6%80%81%E6%8E%A7%E5%88%B6","ariaLabel":"获取信息及状态控制 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"获取信息及状态控制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在注册完页面后,也可通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.window.showTextDocument"}]},{"type":"text","value":" 接口进行打开操作,已支持更多的参数配置,同时可获取到详细的编辑器信息,详细文档见 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/vscode-api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VSCode API - showTextDocument"}]},{"type":"text","value":" , 基础使用如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" textEditor "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showTextDocument"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component://?${args}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      preview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"关闭页面","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E9%97%AD%E9%A1%B5%E9%9D%A2","ariaLabel":"关闭页面 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关闭页面"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"关闭页面请不要使用上面 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"textEditor"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".hide()"}]},{"type":"text","value":" 方法,该方法在后续 API 中已废弃。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01Upwhhm1I5DvRuwckG_!!6000000000841-2-tps-920-303.png","alt":"hide"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"正确用法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"该命令用于关闭当前激活的编辑器页面"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'workbench.action.closeActiveEditor'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"前后端通信","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E5%90%8E%E7%AB%AF%E9%80%9A%E4%BF%A1","ariaLabel":"前后端通信 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前后端通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在使用编辑器组件的时候,你也可以从 props 中获取到前后端通信所需的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendService"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendSet"}]},{"type":"text","value":",如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" sumiExtendService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" resource "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"详细实现方式可见:"},{"type":"element","tagName":"a","properties":{"href":"../develop/connection-mode"},"children":[{"type":"text","value":"通信模型"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件"},"parent":{"relativePath":"extension/interface/custom-editor-component.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/custom-editor-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 的 Browser 插件中,支持通过指定 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scheme"}]},{"type":"text","value":" 的方式自定义编辑器区域的组件,这个功能类似 VS Code 的 Webview API,不同之处在于,这里的编辑器组件可以是一个 React 组件的形式。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C","ariaLabel":"注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册一个编辑器组件,需要提供自定义的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scheme"}]},{"type":"text","value":" , 打开这个组件可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.commands.executeCommand"}]},{"type":"text","value":" 执行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.open"}]},{"type":"text","value":",注意这里执行需要在插件 Node 层逻辑。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// browser/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomEditor"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'custom editor'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  editor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'add'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        scheme"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 建议保持唯一"}]},{"type":"text","value":"\n        panel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CustomEditor"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        tabIconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'path/to/icon.svg'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// node/index.ts"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component://?${args}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.commands.executeCommand"}]},{"type":"text","value":" 执行命令打开编辑器时可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"queryString"}]},{"type":"text","value":" 传入参数,这些参数会作为编辑器组件的 props 在 Browser 侧传入。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"特殊用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%89%B9%E6%AE%8A%E7%94%A8%E6%B3%95","ariaLabel":"特殊用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"特殊用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"获取信息及状态控制","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%8E%B7%E5%8F%96%E4%BF%A1%E6%81%AF%E5%8F%8A%E7%8A%B6%E6%80%81%E6%8E%A7%E5%88%B6","ariaLabel":"获取信息及状态控制 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"获取信息及状态控制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在注册完页面后,也可通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.window.showTextDocument"}]},{"type":"text","value":" 接口进行打开操作,已支持更多的参数配置,同时可获取到详细的编辑器信息,详细文档见 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/vscode-api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VSCode API - showTextDocument"}]},{"type":"text","value":" , 基础使用如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" textEditor "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showTextDocument"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'my-custom-editor-component://?${args}'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      preview"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"关闭页面","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%B3%E9%97%AD%E9%A1%B5%E9%9D%A2","ariaLabel":"关闭页面 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"关闭页面"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"关闭页面请不要使用上面 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"textEditor"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".hide()"}]},{"type":"text","value":" 方法,该方法在后续 API 中已废弃。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01Upwhhm1I5DvRuwckG_!!6000000000841-2-tps-920-303.png","alt":"hide"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"正确用法如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"该命令用于关闭当前激活的编辑器页面"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'workbench.action.closeActiveEditor'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"前后端通信","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E5%90%8E%E7%AB%AF%E9%80%9A%E4%BF%A1","ariaLabel":"前后端通信 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前后端通信"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在使用编辑器组件的时候,你也可以从 props 中获取到前后端通信所需的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendService"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiExtendSet"}]},{"type":"text","value":",如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"CustomComponent"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" sumiExtendService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" sumiExtendSet"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" resource "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"详细实现方式可见:"},{"type":"element","tagName":"a","properties":{"href":"../develop/connection-mode"},"children":[{"type":"text","value":"通信模型"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件"},"parent":{"relativePath":"extension/interface/custom-editor-component.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/interface/i18n/page-data.json b/page-data/zh/docs/extension/interface/i18n/page-data.json
        index a5c0b952..b5814752 100644
        --- a/page-data/zh/docs/extension/interface/i18n/page-data.json
        +++ b/page-data/zh/docs/extension/interface/i18n/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/i18n","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"完整的插件包括 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code 插件"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi 插件"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 贡献点共同组成,针对不同环境及插件不同功能,国际化的实现在兼容 VS Code 插件的同时也具备了一定程度的扩展能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"vs-code-插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#vs-code-%E6%8F%92%E4%BB%B6","ariaLabel":"vs code 插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"VS Code 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 兼容了 VS Code 官方提供的一些语言包插件(建议使用 2.23.6 以上的 OpenSumi 版本),如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前仅支持 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"zh-cn"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"en-us"}]},{"type":"text","value":" 两种语言的切换能力,如有进一步需求,可到 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"issues"}]},{"type":"text","value":" 提交适配需求。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code 插件在 1.74 版本后废弃了原有的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" 方案,推荐在插件中采用新的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"l10n"}]},{"type":"text","value":" 做为替代方案,如遇到无法正常被国际化的文本,可检查插件版本,考虑使用旧一点的插件版本。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前 OpenSumi 暂未支持通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.l10n"}]},{"type":"text","value":" 实现的本地化能力插件,如遇到相关问题,可以在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues/2341","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"#2341"}]},{"type":"text","value":" 留言或 +1,我们会进一步加快适配进度。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"packagejson-中声明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#packagejson-%E4%B8%AD%E5%A3%B0%E6%98%8E","ariaLabel":"packagejson 中声明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"PackageJSON 中声明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中支持部分 Menu、Command 等纯静态的贡献点,这些贡献点中的文案可以通过使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"%{section}%"}]},{"type":"text","value":" 的占位符来声明国际化文案的字段,例如注册一个命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"contributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"commands\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello OpenSumi\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-hello-command%\""}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件中新增一个名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 的文件作为默认英文语言包"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-hello-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test i18n for command\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于中文则需要写在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.zh-cn.json"}]},{"type":"text","value":" 中,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-hello-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"测试一下命令国际化\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同理对于插件贡献的任何可以显示文案在 IDE 界面中的贡献点,都可以通过这种方式注册语言包,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"configurations"}]},{"type":"text","value":" 中可以这样使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  ...\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"configuration\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-config-title%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"properties\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my-extension.enable-auto-bugfix-feature\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"boolean\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"description\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-config.config.enable-feature%\""}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  ...\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"该插件贡献点会注册一份配置项到框架设置页,同样在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.zh-cn.json"}]},{"type":"text","value":" 中声明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-config-title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"测试插件配置\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-config.config.enable-feature\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"测试开启功能\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01zoaGBP1Y5Fo8ILsu8_!!6000000003007-2-tps-1482-474.png","alt":"configurations"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"node-层使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-%E5%B1%82%E4%BD%BF%E7%94%A8","ariaLabel":"node 层使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node 层使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples/tree/afa438d9303c283b29c35d7be1969b952fe06b21/i18n-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code i18n Sample"}]},{"type":"text","value":",需要在将国际化语言包按照 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/{language}"}]},{"type":"text","value":" 的结构编写在插件中。若你的插件源码文件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/utils.ts"}]},{"type":"text","value":" 需要国际化支持,则应该把语言文案编写在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/out/utils.i18n.json"}]},{"type":"text","value":" 中,编写 OpenSumi 插件 Node 端代码同理。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以上示例适用于使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gulpfile.js"}]},{"type":"text","value":" 构建的纯 VS Code 插件, 部分新版本插件可能不适用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于使用 OpenSumi CLI 初始化的插件项目,使用时需要先在插件中安装最新版本 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode-nls"}]},{"type":"text","value":", 示例代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件入口 extension.ts 或 extend/node/index.ts 中"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" nls "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode-nls'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"bundle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  bundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"BundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"standalone\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"shoeInfomationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'i18n.key'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'defaulMessage'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 其他文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" nls "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode-nls'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"loadMessageBundle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与 VS Code 实例中不同的是,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.config"}]},{"type":"text","value":" 的参数存在部分写法上的区别:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 使用 gulp + tsc 时"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"file "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 使用 OpenSumi CLI / webpack 时"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"bundle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  bundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"BundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"standalone\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"不同的参数对应了 vscode-nls 这个模块在运行时将以何种方式加载语言包文件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"若是纯 VS Code 插件,使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gulp + tsc"}]},{"type":"text","value":" 构建插件,则运行时会通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" 目录结构加载对应文件的语言包,构建时只会生成 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.metadata.json"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.metadata.header.json"}]},{"type":"text","value":" 用于记录对应的语言文件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"若是 OpenSumi 插件 Node 端,或使用 Webpack 打包的 VS Code 插件,将插件压缩为一个单文件,则运行时会尝试加载 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" 目录下的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.bundle.{language}.json"}]},{"type":"text","value":" 文件。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时根据 VS Code 插件示例,若 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" 对应语言目录下包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 时(如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/zh-cn/package.nls.json"}]},{"type":"text","value":"),使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi compile/watch"}]},{"type":"text","value":" 命令时也会被提取到插件根目录下并重命名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.{language}.json"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"无论是 VS Code 插件还是 OpenSumi 插件,在运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi compile"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi watch"}]},{"type":"text","value":" 时都会同时将对应语言的提取到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"out/"}]},{"type":"text","value":" 目录下。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"log"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-log"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-log"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"WEBPACK Hash:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1da8c87af3944336632a"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Version:"}]},{"type":"text","value":" webpack "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"4.44.1"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Time:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1197ms"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Built at:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","date","number"]},"children":[{"type":"text","value":"2020-08-10"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","time","number"]},"children":[{"type":"text","value":"20:52:32"}]},{"type":"text","value":"\n                   Asset       Size  Chunks             Chunk Names\n                "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"index.js"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"7.86"}]},{"type":"text","value":" KiB       "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  index\n     "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.jpn.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 提取出的日文语言包\n         "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"52"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 默认语言包(英文)\n   "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.zh-cn.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"37"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 中文语言包\n"},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.metadata.header.json"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"149"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 元数据\n       "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.metadata.json"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"118"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 元数据\nWEBPACK Compiled successfully in "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.2s"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"browser-层使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-%E5%B1%82%E4%BD%BF%E7%94%A8","ariaLabel":"browser 层使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser 层使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 Browser 层同样可以将文案声明在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 中,但在使用时需要从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 模块导入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localize"}]},{"type":"text","value":" 方法,第一个参数表示文案 id ,即声明在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 中的字段名,第二个参数为找不到对应语言包文案时的默认值。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-extension-view-title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'测试插件标题'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对应的,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 中的定义如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-view-title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test Title\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"参考示例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%82%E8%80%83%E7%A4%BA%E4%BE%8B","ariaLabel":"参考示例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"参考示例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/tree/main/i18n-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - i18n"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n"},"parent":{"relativePath":"extension/interface/i18n.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/i18n","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"完整的插件包括 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code 插件"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi 插件"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 贡献点共同组成,针对不同环境及插件不同功能,国际化的实现在兼容 VS Code 插件的同时也具备了一定程度的扩展能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"vs-code-插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#vs-code-%E6%8F%92%E4%BB%B6","ariaLabel":"vs code 插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"VS Code 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 兼容了 VS Code 官方提供的一些语言包插件(建议使用 2.23.6 以上的 OpenSumi 版本),如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前仅支持 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"zh-cn"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"en-us"}]},{"type":"text","value":" 两种语言的切换能力,如有进一步需求,可到 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"issues"}]},{"type":"text","value":" 提交适配需求。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code 插件在 1.74 版本后废弃了原有的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" 方案,推荐在插件中采用新的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"l10n"}]},{"type":"text","value":" 做为替代方案,如遇到无法正常被国际化的文本,可检查插件版本,考虑使用旧一点的插件版本。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前 OpenSumi 暂未支持通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode.l10n"}]},{"type":"text","value":" 实现的本地化能力插件,如遇到相关问题,可以在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues/2341","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"#2341"}]},{"type":"text","value":" 留言或 +1,我们会进一步加快适配进度。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"packagejson-中声明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#packagejson-%E4%B8%AD%E5%A3%B0%E6%98%8E","ariaLabel":"packagejson 中声明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"PackageJSON 中声明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中支持部分 Menu、Command 等纯静态的贡献点,这些贡献点中的文案可以通过使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"%{section}%"}]},{"type":"text","value":" 的占位符来声明国际化文案的字段,例如注册一个命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"contributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"commands\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello OpenSumi\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-hello-command%\""}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件中新增一个名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 的文件作为默认英文语言包"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-hello-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test i18n for command\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于中文则需要写在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.zh-cn.json"}]},{"type":"text","value":" 中,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-hello-command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"测试一下命令国际化\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同理对于插件贡献的任何可以显示文案在 IDE 界面中的贡献点,都可以通过这种方式注册语言包,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"configurations"}]},{"type":"text","value":" 中可以这样使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  ...\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"configuration\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-config-title%\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"properties\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"my-extension.enable-auto-bugfix-feature\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"boolean\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"default\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"description\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"%test-extension-config.config.enable-feature%\""}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  ...\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"该插件贡献点会注册一份配置项到框架设置页,同样在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.zh-cn.json"}]},{"type":"text","value":" 中声明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-config-title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"测试插件配置\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-config.config.enable-feature\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"测试开启功能\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01zoaGBP1Y5Fo8ILsu8_!!6000000003007-2-tps-1482-474.png","alt":"configurations"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"node-层使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#node-%E5%B1%82%E4%BD%BF%E7%94%A8","ariaLabel":"node 层使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Node 层使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples/tree/afa438d9303c283b29c35d7be1969b952fe06b21/i18n-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code i18n Sample"}]},{"type":"text","value":",需要在将国际化语言包按照 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/{language}"}]},{"type":"text","value":" 的结构编写在插件中。若你的插件源码文件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/utils.ts"}]},{"type":"text","value":" 需要国际化支持,则应该把语言文案编写在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/out/utils.i18n.json"}]},{"type":"text","value":" 中,编写 OpenSumi 插件 Node 端代码同理。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以上示例适用于使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gulpfile.js"}]},{"type":"text","value":" 构建的纯 VS Code 插件, 部分新版本插件可能不适用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于使用 OpenSumi CLI 初始化的插件项目,使用时需要先在插件中安装最新版本 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"vscode-nls"}]},{"type":"text","value":", 示例代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件入口 extension.ts 或 extend/node/index.ts 中"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" nls "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode-nls'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"bundle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  bundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"BundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"standalone\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"shoeInfomationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'i18n.key'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'defaulMessage'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 其他文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" nls "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode-nls'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"loadMessageBundle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与 VS Code 实例中不同的是,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.config"}]},{"type":"text","value":" 的参数存在部分写法上的区别:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 使用 gulp + tsc 时"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"file "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 使用 OpenSumi CLI / webpack 时"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"config"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  messageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MessageFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"bundle"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  bundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" nls"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"BundleFormat"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"standalone\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"不同的参数对应了 vscode-nls 这个模块在运行时将以何种方式加载语言包文件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"若是纯 VS Code 插件,使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"gulp + tsc"}]},{"type":"text","value":" 构建插件,则运行时会通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" 目录结构加载对应文件的语言包,构建时只会生成 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.metadata.json"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.metadata.header.json"}]},{"type":"text","value":" 用于记录对应的语言文件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"若是 OpenSumi 插件 Node 端,或使用 Webpack 打包的 VS Code 插件,将插件压缩为一个单文件,则运行时会尝试加载 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" 目录下的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"nls.bundle.{language}.json"}]},{"type":"text","value":" 文件。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时根据 VS Code 插件示例,若 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n"}]},{"type":"text","value":" 对应语言目录下包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 时(如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"i18n/zh-cn/package.nls.json"}]},{"type":"text","value":"),使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi compile/watch"}]},{"type":"text","value":" 命令时也会被提取到插件根目录下并重命名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.{language}.json"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"无论是 VS Code 插件还是 OpenSumi 插件,在运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi compile"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi watch"}]},{"type":"text","value":" 时都会同时将对应语言的提取到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"out/"}]},{"type":"text","value":" 目录下。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"log"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-log"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-log"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"WEBPACK Hash:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1da8c87af3944336632a"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Version:"}]},{"type":"text","value":" webpack "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"4.44.1"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Time:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1197ms"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"Built at:"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","date","number"]},"children":[{"type":"text","value":"2020-08-10"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","time","number"]},"children":[{"type":"text","value":"20:52:32"}]},{"type":"text","value":"\n                   Asset       Size  Chunks             Chunk Names\n                "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"index.js"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"7.86"}]},{"type":"text","value":" KiB       "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  index\n     "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.jpn.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"24"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 提取出的日文语言包\n         "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"52"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 默认语言包(英文)\n   "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.bundle.zh-cn.json"}]},{"type":"text","value":"   "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"37"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 中文语言包\n"},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.metadata.header.json"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"149"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 元数据\n       "},{"type":"element","tagName":"span","properties":{"className":["token","domain","constant"]},"children":[{"type":"text","value":"nls.metadata.json"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"118"}]},{"type":"text","value":" bytes          "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"emitted"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":" 元数据\nWEBPACK Compiled successfully in "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.2s"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"browser-层使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#browser-%E5%B1%82%E4%BD%BF%E7%94%A8","ariaLabel":"browser 层使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Browser 层使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 Browser 层同样可以将文案声明在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 中,但在使用时需要从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 模块导入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localize"}]},{"type":"text","value":" 方法,第一个参数表示文案 id ,即声明在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 中的字段名,第二个参数为找不到对应语言包文案时的默认值。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MyPanel"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-extension-view-title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'测试插件标题'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对应的,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.nls.json"}]},{"type":"text","value":" 中的定义如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"test-extension-view-title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Test Title\""}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"参考示例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%82%E8%80%83%E7%A4%BA%E4%BE%8B","ariaLabel":"参考示例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"参考示例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/tree/main/i18n-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - i18n"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n"},"parent":{"relativePath":"extension/interface/i18n.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/interface/layout/page-data.json b/page-data/zh/docs/extension/interface/layout/page-data.json
        index 498b1916..73c53f62 100644
        --- a/page-data/zh/docs/extension/interface/layout/page-data.json
        +++ b/page-data/zh/docs/extension/interface/layout/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/layout","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 扩展 API 中包含名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layout"}]},{"type":"text","value":" 的 namespace,除了直观的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleBottomPanel"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleLeftPanel"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleRightPanel"}]},{"type":"text","value":" 等方法之外,可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"text","value":" 传入特定 Tabbar 面板的 ID 获取一个 handler 对象,用于更精细的控制 Tabbar。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这个 ID 是指插件 UI 侧注册视图的 ID,一般我们可以简单的通过 Dom 结构上找到这些信息,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01dMQBzL1I16MUIkxwe_!!6000000000832-2-tps-1566-772.png","alt":"Debug Console"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01ousv8M26hRlrYpMxj_!!6000000007693-2-tps-1510-1202.png","alt":"Explorer"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用方法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95","ariaLabel":"使用方法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用方法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tabbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"explorer"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"500"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置面板尺寸"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//展开面板"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 收起面板"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setVisible"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置为隐藏状态"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 面板展开时的事件"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onInActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 面板收起时的事件"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置对应 Tab 上的图标"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置对应 Tab 上的文字"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'12'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置 Tab 的徽章"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于其他插件注册的视图,可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getExtensionTabbarHandler"}]},{"type":"text","value":" 方法获取其实例,使用时需要传入对应插件的 ID,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tabbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtensionTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'viewId'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'extensionId'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如有疑问,欢迎在 Issue 中提问交流 ~"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout"},"parent":{"relativePath":"extension/interface/layout.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/layout","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 扩展 API 中包含名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layout"}]},{"type":"text","value":" 的 namespace,除了直观的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleBottomPanel"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleLeftPanel"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"toggleRightPanel"}]},{"type":"text","value":" 等方法之外,可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"text","value":" 传入特定 Tabbar 面板的 ID 获取一个 handler 对象,用于更精细的控制 Tabbar。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这个 ID 是指插件 UI 侧注册视图的 ID,一般我们可以简单的通过 Dom 结构上找到这些信息,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01dMQBzL1I16MUIkxwe_!!6000000000832-2-tps-1566-772.png","alt":"Debug Console"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01ousv8M26hRlrYpMxj_!!6000000007693-2-tps-1510-1202.png","alt":"Explorer"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用方法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95","ariaLabel":"使用方法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用方法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tabbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"explorer"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setSize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"500"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置面板尺寸"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"//展开面板"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 收起面板"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setVisible"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置为隐藏状态"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 面板展开时的事件"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onInActivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 面板收起时的事件"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置对应 Tab 上的图标"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setTitle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置对应 Tab 上的文字"}]},{"type":"text","value":"\ntabbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"setBadge"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'12'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 设置 Tab 的徽章"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于其他插件注册的视图,可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"getExtensionTabbarHandler"}]},{"type":"text","value":" 方法获取其实例,使用时需要传入对应插件的 ID,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tabbar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"layout"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getExtensionTabbarHandler"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'viewId'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'extensionId'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如有疑问,欢迎在 Issue 中提问交流 ~"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout"},"parent":{"relativePath":"extension/interface/layout.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/interface/terminal/page-data.json b/page-data/zh/docs/extension/interface/terminal/page-data.json
        index 53c757a0..9a008498 100644
        --- a/page-data/zh/docs/extension/interface/terminal/page-data.json
        +++ b/page-data/zh/docs/extension/interface/terminal/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/terminal","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"终端(Terminal) 是 IDE 重要的组成部分,能帮助用户快速的进行系统命令的执行及文件操作等,下面介绍一些常见的插件内的拓展场景。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"自定义链接识别","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%93%BE%E6%8E%A5%E8%AF%86%E5%88%AB","ariaLabel":"自定义链接识别 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义链接识别"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\nvscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerTerminalLinkProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 鼠标 hover 时会触发这个方法"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"provideTerminalLinks"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" token"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// context.line 就是当前行的字符串"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" startIndex "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"line "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"indexOf"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"startIndex "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 返回一个数组,内容是识别出来的所有链接"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        startIndex"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        length"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"length"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// You can return data in this object to access inside handleTerminalLink"}]},{"type":"text","value":"\n        data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Example data'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 点击链接时会触发这个方法"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handleTerminalLink"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"link"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Link activated (data = "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"link"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里可以通过 vscode.open 打开外部链接"}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01abcWWB23IJBV61QhN_!!6000000007232-1-tps-1200-692.gif","alt":"link"},"children":[]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal"},"parent":{"relativePath":"extension/interface/terminal.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/terminal","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"终端(Terminal) 是 IDE 重要的组成部分,能帮助用户快速的进行系统命令的执行及文件操作等,下面介绍一些常见的插件内的拓展场景。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"自定义链接识别","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%93%BE%E6%8E%A5%E8%AF%86%E5%88%AB","ariaLabel":"自定义链接识别 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义链接识别"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\nvscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerTerminalLinkProvider"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 鼠标 hover 时会触发这个方法"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"provideTerminalLinks"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" token"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// context.line 就是当前行的字符串"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" startIndex "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"line "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"indexOf"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"if"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"startIndex "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"-"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 返回一个数组,内容是识别出来的所有链接"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        startIndex"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        length"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"length"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// You can return data in this object to access inside handleTerminalLink"}]},{"type":"text","value":"\n        data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Example data'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 点击链接时会触发这个方法"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"handleTerminalLink"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"link"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Link activated (data = "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"link"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 这里可以通过 vscode.open 打开外部链接"}]},{"type":"text","value":"\n    vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.open'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"parse"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://opensumi.com'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"效果如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01abcWWB23IJBV61QhN_!!6000000007232-1-tps-1200-692.gif","alt":"link"},"children":[]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal"},"parent":{"relativePath":"extension/interface/terminal.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/interface/toolbar/page-data.json b/page-data/zh/docs/extension/interface/toolbar/page-data.json
        index 7e3db6bf..557315c7 100644
        --- a/page-data/zh/docs/extension/interface/toolbar/page-data.json
        +++ b/page-data/zh/docs/extension/interface/toolbar/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/toolbar","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar 默认位于 IDE 顶部菜单栏右侧,根据不同集成方的配置,也可以展现为单独的一栏,类似支付宝小程序开发者工具。如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01vZ7d8C1cyS0IU2qtR_!!6000000003669-2-tps-1685-86.png","alt":"sample1"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qSsHwA21oFZktRttG_!!6000000007031-2-tps-1651-87.png","alt":"sample2"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01cNra151YvvM7eJw2A_!!6000000003122-2-tps-1529-46.png","alt":"sample3"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.toolbar"}]},{"type":"text","value":" 命名空间内包含 toolbar 相关的 API,可以结合 "},{"type":"element","tagName":"a","properties":{"href":"../contributes/toolbar"},"children":[{"type":"text","value":"Toolbar 贡献点"}]},{"type":"text","value":" 对工具栏进行更细致的控制。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar 包含三个方法,用于获取或者注册一个 Toolbar Action,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * 注册一个 select 类型的 Toolbar Action\n * @param contribution IToolbarSelectContribution\n * 返回一个用于操作和响应 toolbar 上对应 select 控件的 handle\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  contribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarSelectContribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarSelectActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * 注册一个 button 类型的 Toolbar action\n * @param contribution IToolbarButtonContribution\n * 返回一个用于操作和响应 toolbar 上对应 button 控件的 handle\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  contribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarButtonContribution\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarButtonActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * 获得一个 Toolbar action 的 handle, 用于操作和响应 toolbar 上的 button\n * @param id\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarButtonActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * 获得一个 Toolbar action 的 handle, 用于操作和响应 toolbar 上的 select\n * @param id\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarSelectActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"registertoolbaraction","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#registertoolbaraction","ariaLabel":"registertoolbaraction permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"registerToolbarAction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"text","value":" 可以动态注册 Toolbar 元素,与通过 Toolbar 贡献点注册不同的是,贡献点的 Toolbar Action 无论插件是否激活都会展示,而通过 API 仅会在插件激活以后才会真正注册并显示在工具栏。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参数与 Toolbar 贡献点基本一致,基本可以直接将贡献点声明的内容作为参数调用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'运行'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/gua.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-start'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 使用 mask 方式渲染 svg,前景色为 --activityBar-inactiveForeground"}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定义按钮的几种状态"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认将标题前景色设为红色"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#FF004F'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// clicked 状态下为灰色"}]},{"type":"text","value":"\n    clicked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#CCC'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nsumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册一个 select 类型的 toolbar action"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'儿童节送什么?'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'儿童节送什么?'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 绑定 do-select command"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select 下拉值列表"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'礼物'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'五年高考'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认 state"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      labelForegroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#FF004F'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    clicked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      labelForegroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#CCC'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"gettoolbaractionbuttonhandlegettoolbaractionselecthandle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#gettoolbaractionbuttonhandlegettoolbaractionselecthandle","ariaLabel":"gettoolbaractionbuttonhandlegettoolbaractionselecthandle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"getToolbarActionButtonHandle/getToolbarActionSelectHandle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用法上参考 "},{"type":"element","tagName":"a","properties":{"href":"../contributes/toolbar"},"children":[{"type":"text","value":"Toolbar 贡献点"}]},{"type":"text","value":" 文档中的案例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"示例仓库","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%A4%BA%E4%BE%8B%E4%BB%93%E5%BA%93","ariaLabel":"示例仓库 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"示例仓库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/tree/main/toolbar-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - Toolbar"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar"},"parent":{"relativePath":"extension/interface/toolbar.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/toolbar","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar 默认位于 IDE 顶部菜单栏右侧,根据不同集成方的配置,也可以展现为单独的一栏,类似支付宝小程序开发者工具。如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01vZ7d8C1cyS0IU2qtR_!!6000000003669-2-tps-1685-86.png","alt":"sample1"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01qSsHwA21oFZktRttG_!!6000000007031-2-tps-1651-87.png","alt":"sample2"},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01cNra151YvvM7eJw2A_!!6000000003122-2-tps-1529-46.png","alt":"sample3"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi.toolbar"}]},{"type":"text","value":" 命名空间内包含 toolbar 相关的 API,可以结合 "},{"type":"element","tagName":"a","properties":{"href":"../contributes/toolbar"},"children":[{"type":"text","value":"Toolbar 贡献点"}]},{"type":"text","value":" 对工具栏进行更细致的控制。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Toolbar 包含三个方法,用于获取或者注册一个 Toolbar Action,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * 注册一个 select 类型的 Toolbar Action\n * @param contribution IToolbarSelectContribution\n * 返回一个用于操作和响应 toolbar 上对应 select 控件的 handle\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  contribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarSelectContribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarSelectActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * 注册一个 button 类型的 Toolbar action\n * @param contribution IToolbarButtonContribution\n * 返回一个用于操作和响应 toolbar 上对应 button 控件的 handle\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  contribution"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IToolbarButtonContribution\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarButtonActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * 获得一个 Toolbar action 的 handle, 用于操作和响应 toolbar 上的 button\n * @param id\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionButtonHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarButtonActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * 获得一个 Toolbar action 的 handle, 用于操作和响应 toolbar 上的 select\n * @param id\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","generic-function"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getToolbarActionSelectHandle"}]},{"type":"element","tagName":"span","properties":{"className":["token","generic","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IToolbarSelectActionHandle"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"T"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">>"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"registertoolbaraction","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#registertoolbaraction","ariaLabel":"registertoolbaraction permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"registerToolbarAction"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"text","value":" 可以动态注册 Toolbar 元素,与通过 Toolbar 贡献点注册不同的是,贡献点的 Toolbar Action 无论插件是否激活都会展示,而通过 API 仅会在插件激活以后才会真正注册并显示在工具栏。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参数与 Toolbar 贡献点基本一致,基本可以直接将贡献点声明的内容作为参数调用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'button'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'运行'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./icons/gua.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-start'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 使用 mask 方式渲染 svg,前景色为 --activityBar-inactiveForeground"}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 定义按钮的几种状态"}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认将标题前景色设为红色"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#FF004F'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// clicked 状态下为灰色"}]},{"type":"text","value":"\n    clicked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      titleForeground"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#CCC'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\nsumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"toolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarAction"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册一个 select 类型的 toolbar action"}]},{"type":"text","value":"\n  title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'儿童节送什么?'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'儿童节送什么?'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 绑定 do-select command"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'do-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'common-select'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  iconMaskMode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// select 下拉值列表"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/gift.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'礼物'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'gift'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      iconPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/icons/book.svg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'五年高考'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      value"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'book'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  states"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认 state"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      labelForegroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#FF004F'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    clicked"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      labelForegroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'#CCC'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"gettoolbaractionbuttonhandlegettoolbaractionselecthandle","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#gettoolbaractionbuttonhandlegettoolbaractionselecthandle","ariaLabel":"gettoolbaractionbuttonhandlegettoolbaractionselecthandle permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"getToolbarActionButtonHandle/getToolbarActionSelectHandle"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用法上参考 "},{"type":"element","tagName":"a","properties":{"href":"../contributes/toolbar"},"children":[{"type":"text","value":"Toolbar 贡献点"}]},{"type":"text","value":" 文档中的案例。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"示例仓库","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%A4%BA%E4%BE%8B%E4%BB%93%E5%BA%93","ariaLabel":"示例仓库 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"示例仓库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples/tree/main/toolbar-sample","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Sample - Toolbar"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar"},"parent":{"relativePath":"extension/interface/toolbar.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/interface/use-builtin-component/page-data.json b/page-data/zh/docs/extension/interface/use-builtin-component/page-data.json
        index 7a8e8c24..c800d525 100644
        --- a/page-data/zh/docs/extension/interface/use-builtin-component/page-data.json
        +++ b/page-data/zh/docs/extension/interface/use-builtin-component/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/use-builtin-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"内置组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%86%85%E7%BD%AE%E7%BB%84%E4%BB%B6","ariaLabel":"内置组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"内置组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 的 Browser 插件中,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 已导出 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@ali/ide-components"}]},{"type":"text","value":" 中所有的组件,所以当我们需要使用组件,直接通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 引用即可,示例如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Button"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Input "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Sample"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"React"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Component "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"render"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"This "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"is"}]},{"type":"text","value":" a button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Input "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"第三方组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%AC%AC%E4%B8%89%E6%96%B9%E7%BB%84%E4%BB%B6","ariaLabel":"第三方组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"第三方组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 中导出的组件多为 OpenSumi 中的常用组件,可能你会需要使用更多组件,比如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd"}]},{"type":"text","value":" 之类组件库,需要注意的是,若你的插件运行环境已开启 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDom"}]},{"type":"text","value":" 模式(避免样式污染,目前是默认开启),请注意在使用全局通知类的组件如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"notification/dialog"}]},{"type":"text","value":" 等需要注意 css 可能被隔离导致样式失效,请选择 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 中导出的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"messsage/dialog"}]},{"type":"text","value":" 组件以满足开发需求,或将组件挂载至当前组件下,详见:"},{"type":"element","tagName":"a","properties":{"href":"../opensumi-api/view-isolate"},"children":[{"type":"text","value":"视图隔离注意事项"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们也提供了针对 AntD 4 版本的主题包 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":",你可以通过如下的方式使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/antd-theme/lib/index.css'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ConfigProvider prefixCls"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi_antd\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"App "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"ConfigProvider"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"开发同类主题文件,可参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme#developement","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" 仓库。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components"},"parent":{"relativePath":"extension/interface/use-builtin-component.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/use-builtin-component","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"内置组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%86%85%E7%BD%AE%E7%BB%84%E4%BB%B6","ariaLabel":"内置组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"内置组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 的 Browser 插件中,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 已导出 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@ali/ide-components"}]},{"type":"text","value":" 中所有的组件,所以当我们需要使用组件,直接通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 引用即可,示例如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Button"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Input "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Sample"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"React"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Component "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"render"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"This "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"is"}]},{"type":"text","value":" a button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"Button"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Input "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"第三方组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%AC%AC%E4%B8%89%E6%96%B9%E7%BB%84%E4%BB%B6","ariaLabel":"第三方组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"第三方组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 中导出的组件多为 OpenSumi 中的常用组件,可能你会需要使用更多组件,比如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"antd"}]},{"type":"text","value":" 之类组件库,需要注意的是,若你的插件运行环境已开启 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ShadowDom"}]},{"type":"text","value":" 模式(避免样式污染,目前是默认开启),请注意在使用全局通知类的组件如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"notification/dialog"}]},{"type":"text","value":" 等需要注意 css 可能被隔离导致样式失效,请选择 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-browser"}]},{"type":"text","value":" 中导出的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"messsage/dialog"}]},{"type":"text","value":" 组件以满足开发需求,或将组件挂载至当前组件下,详见:"},{"type":"element","tagName":"a","properties":{"href":"../opensumi-api/view-isolate"},"children":[{"type":"text","value":"视图隔离注意事项"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们也提供了针对 AntD 4 版本的主题包 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":",你可以通过如下的方式使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/antd-theme/lib/index.css'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"ConfigProvider prefixCls"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi_antd\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"App "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"ConfigProvider"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"开发同类主题文件,可参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/antd-theme#developement","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/antd-theme"}]},{"type":"text","value":" 仓库。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components"},"parent":{"relativePath":"extension/interface/use-builtin-component.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/interface/use-event/page-data.json b/page-data/zh/docs/extension/interface/use-event/page-data.json
        index 7367b834..184d235d 100644
        --- a/page-data/zh/docs/extension/interface/use-event/page-data.json
        +++ b/page-data/zh/docs/extension/interface/use-event/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/use-event","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,你可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Event"}]},{"type":"text","value":" 机制来实现跨插件的通信,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件 A 中发出事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"fire"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'event-from-extension-a'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'a'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件 B 中接收事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"subscribe"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'event-from-extension-a'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// a"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同样的,你也可以通过 Command(命令) 的方式来实现类似逻辑,参考:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/vscode-api#commands","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code API#commands"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event"},"parent":{"relativePath":"extension/interface/use-event.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/interface/use-event","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,你可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Event"}]},{"type":"text","value":" 机制来实现跨插件的通信,如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件 A 中发出事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"fire"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'event-from-extension-a'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'a'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件 B 中接收事件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"event"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"subscribe"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'event-from-extension-a'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"data"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// a"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同样的,你也可以通过 Command(命令) 的方式来实现类似逻辑,参考:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/vscode-api#commands","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code API#commands"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event"},"parent":{"relativePath":"extension/interface/use-event.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/overview/page-data.json b/page-data/zh/docs/extension/overview/page-data.json
        index 89a63bf4..ee493d4f 100644
        --- a/page-data/zh/docs/extension/overview/page-data.json
        +++ b/page-data/zh/docs/extension/overview/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,我们提供了一个强大的插件生态系统,在兼容 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 插件 API"}]},{"type":"text","value":" 的同时,我们也有着自己的 OpenSumi API 用于进一步拓展 IDE 界面及能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件能力实现结构图如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01xpzgfe24PvNA26s4q_!!6000000007384-2-tps-1371-940.png","alt":"Extension Features"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开发-vs-code-插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%8F%91-vs-code-%E6%8F%92%E4%BB%B6","ariaLabel":"开发 vs code 插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开发 VS Code 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件开发中,你可以遵循 VS Code 的开发模式,在 VS Code 内完成你的插件开发后,将实现的插件产物引入到基于 OpenSumi 搭建的 IDE 中使用,详细可参考 VS Code 插件文档 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下面是一些常用的示例及文档:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/eclipse-theia/vscode-builtin-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"eclipse-theia/vscode-builtin-extensions"}]},{"type":"text","value":" —— 基于 VS Code 版本打包其内置插件的工程项目"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"microsoft/vscode-extension-samples"}]},{"type":"text","value":" —— VS Code 官方的插件 API 示例仓库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":" —— VS Code 插件开发向导文档"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/get-started/your-first-extension","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Your First Extension"}]},{"type":"text","value":" —— 快速开始插件开发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]},{"type":"text","value":" —— 在 OpenSumi 中也支持了这类插件,在纯前端环境有着十分重要的作用"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开发-opensumi-插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%8F%91-opensumi-%E6%8F%92%E4%BB%B6","ariaLabel":"开发 opensumi 插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开发 OpenSumi 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 中存在着一部分仅能运行在基于 OpenSumi 开发的 IDE 之中,提供的能力包括但不限于:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"通过 React 技术栈进行视图的拓展定制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar 定制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron Webview 管理"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"布局能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"全视图的自定义渲染"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一个完整的 OpenSumi 插件目录结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── .gitignore          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# git 忽略目录"}]},{"type":"text","value":"\n├── README.md           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件说明"}]},{"type":"text","value":"\n├── src\n    ├── extend\n        ├── browser     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件 Browser 端入口, 提供 UI 定制能力"}]},{"type":"text","value":"\n        ├── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件 Node 端入口,提供本地环境运行能力"}]},{"type":"text","value":"\n        ├── worker      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件 Worker 端入口,提供 WebWorker 环境运行能力"}]},{"type":"text","value":"\n│   └── extension.ts    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件源码 (VS Code 插件入口)"}]},{"type":"text","value":"\n├── package.json        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Extension manifest"}]},{"type":"text","value":"\n├── tsconfig.json"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"目录说明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%9B%AE%E5%BD%95%E8%AF%B4%E6%98%8E","ariaLabel":"目录说明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"目录说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/extensions.ts"}]},{"type":"text","value":" 为 VS Code 插件入口,关于 VS Code 插件开发请参阅 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/extend"}]},{"type":"text","value":" 目录下为 OpenSumi 自有插件体系,包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser/Node/Worker"}]},{"type":"text","value":" 端入口。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"入口说明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%A5%E5%8F%A3%E8%AF%B4%E6%98%8E","ariaLabel":"入口说明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"入口说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code 插件在 OpenSumi 运行时会保持与 VS Code 特定版本一致的行为,例如当前 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"2.23.0"}]},{"type":"text","value":" 版本兼容 VS Code 的插件 API 版本为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"1.68.0"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Browser 端支持通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"React"}]},{"type":"text","value":" 组件的方式在界面暴露的插槽中定制 UI ,如果你的插件需要在界面注册 UI 组件,可以将其编写在 Browser 端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Node 端支持纯 Node 环境运行时,在 Node 端插件拥有与 VS Code 插件一致的 API,同时还可以调用 OpenSumi 自有的插件 API,如果你的插件需要调用原生 Node.js 的 API 或运行一些本地任务,可以将其编写在 Node 端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker 端拥有 WebWorker 环境运行时,如果你的插件包含一些计算量较大的任务,同时不需要本地能力,可以将其编写在 Worker 端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不论是 VS Code 插件还是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser/Node/Worker"}]},{"type":"text","value":" 三端都是可选的,也就是说如果你只需要原生 VS Code 插件能力,则可以忽略 extend 目录。同样如果你只需要 OpenSumi 插件三端之一的能力,也可以忽略其他,仅需要修改少量的配置。"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开始开发","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%A7%8B%E5%BC%80%E5%8F%91","ariaLabel":"开始开发 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开始开发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考 "},{"type":"element","tagName":"a","properties":{"href":"./quick-start"},"children":[{"type":"text","value":"快速开始"}]},{"type":"text","value":" 文档,使用 OpenSumi CLI 快速在本地搭建插件开发环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件示例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E7%A4%BA%E4%BE%8B","ariaLabel":"插件示例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件示例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了上面提到的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code Extension Samples"}]},{"type":"text","value":",OpenSumi 也有自己的插件示例仓库 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Samples"}]},{"type":"text","value":",包含了一些常见的插件示例代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"i18n Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Gulp compile Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Gulp"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Custom webpack compile Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Configuration Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Upload OSS Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Plain Webview Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Git Operation Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Command Sample"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件市场","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA","ariaLabel":"插件市场 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件市场"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前 OpenSumi 支持两种插件市场,如下面所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01Kq3jZf25zTjbBJWzR_!!6000000007597-2-tps-1906-732.png","alt":"Extension Marketplace"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://marketplace.opentrs.cn/square","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenTRS"}]},{"type":"text","value":" —— 蚂蚁集团开放的公共插件市场服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://open-vsx.org/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenVSX"}]},{"type":"text","value":" —— Eclipse 基金会开放的公共插件市场服务(源码开源)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"可以根据使用场景自由进行源的切换,见文档 "},{"type":"element","tagName":"a","properties":{"href":"../integrate/universal-integrate-case/custom-marketplace-entrypoint"},"children":[{"type":"text","value":"自定义插件市场源"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件"},"parent":{"relativePath":"extension/overview.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,我们提供了一个强大的插件生态系统,在兼容 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 插件 API"}]},{"type":"text","value":" 的同时,我们也有着自己的 OpenSumi API 用于进一步拓展 IDE 界面及能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件能力实现结构图如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01xpzgfe24PvNA26s4q_!!6000000007384-2-tps-1371-940.png","alt":"Extension Features"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开发-vs-code-插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%8F%91-vs-code-%E6%8F%92%E4%BB%B6","ariaLabel":"开发 vs code 插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开发 VS Code 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件开发中,你可以遵循 VS Code 的开发模式,在 VS Code 内完成你的插件开发后,将实现的插件产物引入到基于 OpenSumi 搭建的 IDE 中使用,详细可参考 VS Code 插件文档 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下面是一些常用的示例及文档:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/eclipse-theia/vscode-builtin-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"eclipse-theia/vscode-builtin-extensions"}]},{"type":"text","value":" —— 基于 VS Code 版本打包其内置插件的工程项目"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"microsoft/vscode-extension-samples"}]},{"type":"text","value":" —— VS Code 官方的插件 API 示例仓库"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":" —— VS Code 插件开发向导文档"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/get-started/your-first-extension","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Your First Extension"}]},{"type":"text","value":" —— 快速开始插件开发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]},{"type":"text","value":" —— 在 OpenSumi 中也支持了这类插件,在纯前端环境有着十分重要的作用"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开发-opensumi-插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%8F%91-opensumi-%E6%8F%92%E4%BB%B6","ariaLabel":"开发 opensumi 插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开发 OpenSumi 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 中存在着一部分仅能运行在基于 OpenSumi 开发的 IDE 之中,提供的能力包括但不限于:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"通过 React 技术栈进行视图的拓展定制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar 定制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron Webview 管理"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"布局能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"全视图的自定义渲染"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一个完整的 OpenSumi 插件目录结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── .gitignore          "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# git 忽略目录"}]},{"type":"text","value":"\n├── README.md           "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件说明"}]},{"type":"text","value":"\n├── src\n    ├── extend\n        ├── browser     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件 Browser 端入口, 提供 UI 定制能力"}]},{"type":"text","value":"\n        ├── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件 Node 端入口,提供本地环境运行能力"}]},{"type":"text","value":"\n        ├── worker      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件 Worker 端入口,提供 WebWorker 环境运行能力"}]},{"type":"text","value":"\n│   └── extension.ts    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 插件源码 (VS Code 插件入口)"}]},{"type":"text","value":"\n├── package.json        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Extension manifest"}]},{"type":"text","value":"\n├── tsconfig.json"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"目录说明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%9B%AE%E5%BD%95%E8%AF%B4%E6%98%8E","ariaLabel":"目录说明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"目录说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/extensions.ts"}]},{"type":"text","value":" 为 VS Code 插件入口,关于 VS Code 插件开发请参阅 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/overview","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Extension Guides"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"src/extend"}]},{"type":"text","value":" 目录下为 OpenSumi 自有插件体系,包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser/Node/Worker"}]},{"type":"text","value":" 端入口。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"入口说明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%A5%E5%8F%A3%E8%AF%B4%E6%98%8E","ariaLabel":"入口说明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"入口说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code 插件在 OpenSumi 运行时会保持与 VS Code 特定版本一致的行为,例如当前 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"2.23.0"}]},{"type":"text","value":" 版本兼容 VS Code 的插件 API 版本为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"1.68.0"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Browser 端支持通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"React"}]},{"type":"text","value":" 组件的方式在界面暴露的插槽中定制 UI ,如果你的插件需要在界面注册 UI 组件,可以将其编写在 Browser 端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Node 端支持纯 Node 环境运行时,在 Node 端插件拥有与 VS Code 插件一致的 API,同时还可以调用 OpenSumi 自有的插件 API,如果你的插件需要调用原生 Node.js 的 API 或运行一些本地任务,可以将其编写在 Node 端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker 端拥有 WebWorker 环境运行时,如果你的插件包含一些计算量较大的任务,同时不需要本地能力,可以将其编写在 Worker 端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不论是 VS Code 插件还是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser/Node/Worker"}]},{"type":"text","value":" 三端都是可选的,也就是说如果你只需要原生 VS Code 插件能力,则可以忽略 extend 目录。同样如果你只需要 OpenSumi 插件三端之一的能力,也可以忽略其他,仅需要修改少量的配置。"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开始开发","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%A7%8B%E5%BC%80%E5%8F%91","ariaLabel":"开始开发 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开始开发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考 "},{"type":"element","tagName":"a","properties":{"href":"./quick-start"},"children":[{"type":"text","value":"快速开始"}]},{"type":"text","value":" 文档,使用 OpenSumi CLI 快速在本地搭建插件开发环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件示例","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E7%A4%BA%E4%BE%8B","ariaLabel":"插件示例 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件示例"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了上面提到的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code Extension Samples"}]},{"type":"text","value":",OpenSumi 也有自己的插件示例仓库 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi Extension Samples"}]},{"type":"text","value":",包含了一些常见的插件示例代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Toolbar Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"i18n Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Gulp compile Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Gulp"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Custom webpack compile Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Configuration Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Upload OSS Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Plain Webview Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Git Operation Sample"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Command Sample"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件市场","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA","ariaLabel":"插件市场 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件市场"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前 OpenSumi 支持两种插件市场,如下面所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01Kq3jZf25zTjbBJWzR_!!6000000007597-2-tps-1906-732.png","alt":"Extension Marketplace"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://marketplace.opentrs.cn/square","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenTRS"}]},{"type":"text","value":" —— 蚂蚁集团开放的公共插件市场服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://open-vsx.org/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenVSX"}]},{"type":"text","value":" —— Eclipse 基金会开放的公共插件市场服务(源码开源)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"可以根据使用场景自由进行源的切换,见文档 "},{"type":"element","tagName":"a","properties":{"href":"../integrate/universal-integrate-case/custom-marketplace-entrypoint"},"children":[{"type":"text","value":"自定义插件市场源"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件"},"parent":{"relativePath":"extension/overview.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/quick-start/page-data.json b/page-data/zh/docs/extension/quick-start/page-data.json
        index cfac5639..c0a2f862 100644
        --- a/page-data/zh/docs/extension/quick-start/page-data.json
        +++ b/page-data/zh/docs/extension/quick-start/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/quick-start","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 支持 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web/Electron"}]},{"type":"text","value":" 两种方式集成,插件系统及其能力在两个平台下具有一致的表现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"开发插件时,你可以使用 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/cli","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" 快速在本地启动插件开发环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":" @opensumi/cli "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-g"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"初始化插件模板","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9D%E5%A7%8B%E5%8C%96%E6%8F%92%E4%BB%B6%E6%A8%A1%E6%9D%BF","ariaLabel":"初始化插件模板 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"初始化插件模板"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi init"}]},{"type":"text","value":" 根据提示输入插件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"name"}]},{"type":"text","value":" 、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"publisher"}]},{"type":"text","value":" ,以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"displayName"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"description"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01A9Ic8J1nGRi2E8aOr_!!6000000005062-2-tps-838-438.png","alt":"sumi-init"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"运行插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%BF%90%E8%A1%8C%E6%8F%92%E4%BB%B6","ariaLabel":"运行插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"运行插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先需要安装依赖。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"基于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" 初始化的插件,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中包含了基础的运行及构建脚本,建议开发阶段后台运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm run watch"}]},{"type":"text","value":" 实时编译插件代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件目录下运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm run dev"}]},{"type":"text","value":" 即可启动一个 Web 版本的 OpenSumi IDE,并将当前插件加载进来。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"compile\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi compile\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"watch\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi watch\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dev\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi dev -e=$(pwd)\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"或者直接在插件目录下运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" 的开发命令, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi dev"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]},{"type":"text","value":"     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 监听并自动编译代码"}]},{"type":"text","value":"\n$ sumi dev       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 启动 OpenSumi Web 版本开发环境"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01M4UZxy1q1jpwR9PtM_!!6000000005436-2-tps-986-334.png","alt":"sumi-dev"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器打开 "},{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1:50999","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1:50999"}]},{"type":"text","value":" 即可打开一个 Web 版的 OpenSumi IDE。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"命令使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%91%BD%E4%BB%A4%E4%BD%BF%E7%94%A8","ariaLabel":"命令使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"命令使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"engine-版本控制","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#engine-%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6","ariaLabel":"engine 版本控制 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Engine 版本控制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,存在许多的发行版本,在开发插件前,你需要确保你所使用的的插件 API 在对应的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" 版本中支持,可以通过下面的命令查看当前使用的版本信息:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"ls"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01egTvGF1nQWQB3JQtO_!!6000000005084-2-tps-532-196.png","alt":"sumi-engine-ls"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过下面的命令你可以看到所有的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" 版本信息:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine ls-remote"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在切换版本时,只需要通过下面的命令进行切换:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine use "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"版本"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在遇到插件功能表现异常时,及时更新 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" 到最新版本进行测试是比较有效的验证手段。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"设置编译成功回调","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AE%BE%E7%BD%AE%E7%BC%96%E8%AF%91%E6%88%90%E5%8A%9F%E5%9B%9E%E8%B0%83","ariaLabel":"设置编译成功回调 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"设置编译成功回调"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi watch"}]},{"type":"text","value":" 命令时,OpenSumi CLI 支持在每一次编译成功后执行回调,例如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--onSuccess"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'echo hello world'"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"指定工作目录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8C%87%E5%AE%9A%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95","ariaLabel":"指定工作目录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"指定工作目录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi dev"}]},{"type":"text","value":" 命令时,支持指定工作目录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-w"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/vscode"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这会将传入的路径作为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"text","value":" 参数,并将当前目录作为插件启动 OpenSumi IDE,如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN010Yu9Be1jgm0jSYwUt_!!6000000004578-2-tps-1200-802.png","alt":"set-workspace"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"指定基础插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8C%87%E5%AE%9A%E5%9F%BA%E7%A1%80%E6%8F%92%E4%BB%B6","ariaLabel":"指定基础插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"指定基础插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi CLI 不会内置任何插件,当你的插件依赖其他插件的一些能力时,可以将这些插件软链接或者直接复制到 OpenSumi CLI 的插件目录,默认插件目录为用户 Home 目录下的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi-dev/extensions"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"指定-ide-server-端口","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8C%87%E5%AE%9A-ide-server-%E7%AB%AF%E5%8F%A3","ariaLabel":"指定 ide server 端口 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"指定 IDE Server 端口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi CLI 支持通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"-p"}]},{"type":"text","value":" 指定 IDE Server 监听的端口,默认为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"50999"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-p"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8989"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# ..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"调试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%B0%83%E8%AF%95","ariaLabel":"调试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 在插件目录下运行"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 启动 OpenSumi IDE 调试模式"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 或指定插件目录"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext1,/path/to/ext2"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"使用-vs-code--opensumi-ide-进行断点调试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-vs-code--opensumi-ide-%E8%BF%9B%E8%A1%8C%E6%96%AD%E7%82%B9%E8%B0%83%E8%AF%95","ariaLabel":"使用 vs code  opensumi ide 进行断点调试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 VS Code / OpenSumi IDE 进行断点调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件进程本质为一个 Node.js 进程,在 VS Code 中配置 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"launch.json"}]},{"type":"text","value":" 即可调试插件代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// A launch configuration that compiles the extension and then opens it inside a new window"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Use IntelliSense to learn about possible attributes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Hover to view descriptions of existing attributes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"version\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"0.2.0\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"configurations\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"node\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"request\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"attach\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\t\t\t\t\t\t\t\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Attach 模式"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"name\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Attach to Extension Host\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"port\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9889"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\t\t\t\t\t\t\t\t\t\t\t\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件进程端口,不可修改"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"skipFiles\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/**\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sourceMaps\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\t\t\t\t\t\t\t\t\t\t        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 开启 SourceMap,便于源码映射"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"outFiles\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"${workspaceFolder}/out/*/.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\t"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 指定插件代码输出目录"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 VS Code 调试面板中选择 Attach to Extension Host,即可使用 VS Code 进行断点调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN0118sSJb1KYCCXcZrIS_!!6000000001175-2-tps-1200-683.png","alt":"debug"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在基于 OpenSumi 开发的本地客户端上调试原理也是一致的,将配置文件放置在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi/launch.json"}]},{"type":"text","value":" 下即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"如需在 typescript 源码中进行断点调试,需要编译时开启 Sourcemap"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"指定运行环境","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8C%87%E5%AE%9A%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83","ariaLabel":"指定运行环境 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"指定运行环境"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前支持基于 OpenSumi 框架的桌面(Electron) 版 IDE 作为插件运行环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在终端运行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext1,/path/to/ext2 "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/IDE"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"--execute"}]},{"type":"text","value":" 参数表示桌面 IDE 可执行文件路径,例如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Windows"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/C:"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"Program Files"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"OpenSumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"OpenSumi.exe "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# MacOS"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/Applications/OpenSumi.app/Contents/MacOS/OpenSumi "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用桌面版 IDE 时,由于桌面版 IDE 可能包含创建、选择项目等前置流程,故无法通过参数指定 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"打包插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%89%93%E5%8C%85%E6%8F%92%E4%BB%B6","ariaLabel":"打包插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"打包插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi package"}]},{"type":"text","value":" 命令将你的插件打包。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN012hnLYD1p6wiwKXrHk_!!6000000005312-2-tps-886-618.png","alt":"sumi-package"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi package"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"请确保插件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中包含名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"prepublish"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scripts"}]},{"type":"text","value":" 脚本。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"prepublishOnly\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/* your compile script */\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这会先运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm list"}]},{"type":"text","value":" 分析依赖,如果你需要将插件项目的 node_modules 一并打包进去,建议使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm install --production"}]},{"type":"text","value":" 安装依赖,这样会仅安装运行时必要的模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"排除目录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8E%92%E9%99%A4%E7%9B%AE%E5%BD%95","ariaLabel":"排除目录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"排除目录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi package"}]},{"type":"text","value":" 命令时,支持指定排除的文件或目录,在插件项目下新建名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".vscodeignore"}]},{"type":"text","value":" 的文件,格式类似 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".gitignore"}]},{"type":"text","value":" ,支持 glob 模式匹配目录,在打包时将会排除掉这些文件:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# .vscodeignore"}]},{"type":"text","value":"\nnode_modules/\nsrc/\nyarn-error.log\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# ..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"或传入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"--ignoreFile"}]},{"type":"text","value":" 参数指定 ignore 文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi package "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--ignoreFile"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/.ignore"}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始"},"parent":{"relativePath":"extension/quick-start.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/quick-start","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 支持 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web/Electron"}]},{"type":"text","value":" 两种方式集成,插件系统及其能力在两个平台下具有一致的表现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"开发插件时,你可以使用 "},{"type":"element","tagName":"a","properties":{"href":"https://www.npmjs.com/package/@opensumi/cli","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" 快速在本地启动插件开发环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":" @opensumi/cli "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-g"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"初始化插件模板","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%88%9D%E5%A7%8B%E5%8C%96%E6%8F%92%E4%BB%B6%E6%A8%A1%E6%9D%BF","ariaLabel":"初始化插件模板 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"初始化插件模板"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi init"}]},{"type":"text","value":" 根据提示输入插件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"name"}]},{"type":"text","value":" 、 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"publisher"}]},{"type":"text","value":" ,以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"displayName"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"description"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01A9Ic8J1nGRi2E8aOr_!!6000000005062-2-tps-838-438.png","alt":"sumi-init"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"运行插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%BF%90%E8%A1%8C%E6%8F%92%E4%BB%B6","ariaLabel":"运行插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"运行插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先需要安装依赖。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"基于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" 初始化的插件,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中包含了基础的运行及构建脚本,建议开发阶段后台运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm run watch"}]},{"type":"text","value":" 实时编译插件代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件目录下运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm run dev"}]},{"type":"text","value":" 即可启动一个 Web 版本的 OpenSumi IDE,并将当前插件加载进来。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"compile\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi compile\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"watch\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi watch\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dev\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"sumi dev -e=$(pwd)\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"或者直接在插件目录下运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/cli"}]},{"type":"text","value":" 的开发命令, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi dev"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]},{"type":"text","value":"     "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 监听并自动编译代码"}]},{"type":"text","value":"\n$ sumi dev       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 启动 OpenSumi Web 版本开发环境"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01M4UZxy1q1jpwR9PtM_!!6000000005436-2-tps-986-334.png","alt":"sumi-dev"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器打开 "},{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1:50999","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1:50999"}]},{"type":"text","value":" 即可打开一个 Web 版的 OpenSumi IDE。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"命令使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%91%BD%E4%BB%A4%E4%BD%BF%E7%94%A8","ariaLabel":"命令使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"命令使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"engine-版本控制","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#engine-%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6","ariaLabel":"engine 版本控制 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Engine 版本控制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,存在许多的发行版本,在开发插件前,你需要确保你所使用的的插件 API 在对应的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" 版本中支持,可以通过下面的命令查看当前使用的版本信息:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"ls"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01egTvGF1nQWQB3JQtO_!!6000000005084-2-tps-532-196.png","alt":"sumi-engine-ls"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过下面的命令你可以看到所有的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" 版本信息:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine ls-remote"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在切换版本时,只需要通过下面的命令进行切换:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi engine use "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"版本"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在遇到插件功能表现异常时,及时更新 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"OpenSumi Engine"}]},{"type":"text","value":" 到最新版本进行测试是比较有效的验证手段。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"设置编译成功回调","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AE%BE%E7%BD%AE%E7%BC%96%E8%AF%91%E6%88%90%E5%8A%9F%E5%9B%9E%E8%B0%83","ariaLabel":"设置编译成功回调 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"设置编译成功回调"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi watch"}]},{"type":"text","value":" 命令时,OpenSumi CLI 支持在每一次编译成功后执行回调,例如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--onSuccess"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'echo hello world'"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"指定工作目录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8C%87%E5%AE%9A%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95","ariaLabel":"指定工作目录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"指定工作目录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi dev"}]},{"type":"text","value":" 命令时,支持指定工作目录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-w"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/vscode"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这会将传入的路径作为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"text","value":" 参数,并将当前目录作为插件启动 OpenSumi IDE,如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN010Yu9Be1jgm0jSYwUt_!!6000000004578-2-tps-1200-802.png","alt":"set-workspace"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"指定基础插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8C%87%E5%AE%9A%E5%9F%BA%E7%A1%80%E6%8F%92%E4%BB%B6","ariaLabel":"指定基础插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"指定基础插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi CLI 不会内置任何插件,当你的插件依赖其他插件的一些能力时,可以将这些插件软链接或者直接复制到 OpenSumi CLI 的插件目录,默认插件目录为用户 Home 目录下的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi-dev/extensions"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"指定-ide-server-端口","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8C%87%E5%AE%9A-ide-server-%E7%AB%AF%E5%8F%A3","ariaLabel":"指定 ide server 端口 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"指定 IDE Server 端口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi CLI 支持通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"-p"}]},{"type":"text","value":" 指定 IDE Server 监听的端口,默认为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"50999"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-p"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8989"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# ..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"调试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%B0%83%E8%AF%95","ariaLabel":"调试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 在插件目录下运行"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 启动 OpenSumi IDE 调试模式"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 或指定插件目录"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext1,/path/to/ext2"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"使用-vs-code--opensumi-ide-进行断点调试","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-vs-code--opensumi-ide-%E8%BF%9B%E8%A1%8C%E6%96%AD%E7%82%B9%E8%B0%83%E8%AF%95","ariaLabel":"使用 vs code  opensumi ide 进行断点调试 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 VS Code / OpenSumi IDE 进行断点调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件进程本质为一个 Node.js 进程,在 VS Code 中配置 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"launch.json"}]},{"type":"text","value":" 即可调试插件代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// A launch configuration that compiles the extension and then opens it inside a new window"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Use IntelliSense to learn about possible attributes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Hover to view descriptions of existing attributes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"version\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"0.2.0\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"configurations\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"type\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"node\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"request\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"attach\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\t\t\t\t\t\t\t\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Attach 模式"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"name\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Attach to Extension Host\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"port\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9889"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\t\t\t\t\t\t\t\t\t\t\t\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 插件进程端口,不可修改"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"skipFiles\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/**\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"sourceMaps\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\t\t\t\t\t\t\t\t\t\t        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 开启 SourceMap,便于源码映射"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"outFiles\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"${workspaceFolder}/out/*/.js\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\t"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 指定插件代码输出目录"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 VS Code 调试面板中选择 Attach to Extension Host,即可使用 VS Code 进行断点调试"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN0118sSJb1KYCCXcZrIS_!!6000000001175-2-tps-1200-683.png","alt":"debug"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在基于 OpenSumi 开发的本地客户端上调试原理也是一致的,将配置文件放置在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".sumi/launch.json"}]},{"type":"text","value":" 下即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"如需在 typescript 源码中进行断点调试,需要编译时开启 Sourcemap"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"指定运行环境","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8C%87%E5%AE%9A%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83","ariaLabel":"指定运行环境 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"指定运行环境"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前支持基于 OpenSumi 框架的桌面(Electron) 版 IDE 作为插件运行环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在终端运行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext1,/path/to/ext2 "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/IDE"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"--execute"}]},{"type":"text","value":" 参数表示桌面 IDE 可执行文件路径,例如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# Windows"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/C:"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"Program Files"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"OpenSumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"\\"}]},{"type":"text","value":"OpenSumi.exe "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# MacOS"}]},{"type":"text","value":"\n$ sumi dev "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-e"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/ext "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--execute"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/Applications/OpenSumi.app/Contents/MacOS/OpenSumi "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--debug"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用桌面版 IDE 时,由于桌面版 IDE 可能包含创建、选择项目等前置流程,故无法通过参数指定 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"打包插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%89%93%E5%8C%85%E6%8F%92%E4%BB%B6","ariaLabel":"打包插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"打包插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi package"}]},{"type":"text","value":" 命令将你的插件打包。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN012hnLYD1p6wiwKXrHk_!!6000000005312-2-tps-886-618.png","alt":"sumi-package"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi package"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"请确保插件 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中包含名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"prepublish"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scripts"}]},{"type":"text","value":" 脚本。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"prepublishOnly\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"/* your compile script */\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这会先运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm list"}]},{"type":"text","value":" 分析依赖,如果你需要将插件项目的 node_modules 一并打包进去,建议使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm install --production"}]},{"type":"text","value":" 安装依赖,这样会仅安装运行时必要的模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"排除目录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8E%92%E9%99%A4%E7%9B%AE%E5%BD%95","ariaLabel":"排除目录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"排除目录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi package"}]},{"type":"text","value":" 命令时,支持指定排除的文件或目录,在插件项目下新建名为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".vscodeignore"}]},{"type":"text","value":" 的文件,格式类似 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":".gitignore"}]},{"type":"text","value":" ,支持 glob 模式匹配目录,在打包时将会排除掉这些文件:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# .vscodeignore"}]},{"type":"text","value":"\nnode_modules/\nsrc/\nyarn-error.log\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# ..."}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"或传入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"--ignoreFile"}]},{"type":"text","value":" 参数指定 ignore 文件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ sumi package "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--ignoreFile"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"/path/to/.ignore"}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始"},"parent":{"relativePath":"extension/quick-start.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/vscode/overview/page-data.json b/page-data/zh/docs/extension/vscode/overview/page-data.json
        index 2f00d866..edd79aa6 100644
        --- a/page-data/zh/docs/extension/vscode/overview/page-data.json
        +++ b/page-data/zh/docs/extension/vscode/overview/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/vscode/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前已支持 VS Code 1.74.0 以下的大部分标准 API"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件是 VS Code 插件的一个超集,这意味着一个 OpenSumi 插件即可以包含 VS Code 插件体系,同时还支持 OpenSumi 自有的插件体系,它们都是可选的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可以通过下面的一些文档了解 VS Code 插件的相关开发技巧"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"相关资料","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%9B%B8%E5%85%B3%E8%B5%84%E6%96%99","ariaLabel":"相关资料 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"相关资料"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 插件开发文档"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/Liiked/VS-Code-Extension-Doc-ZH","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 插件开发文档(汉化)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 插件示例"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"预备知识","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%A2%84%E5%A4%87%E7%9F%A5%E8%AF%86","ariaLabel":"预备知识 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"预备知识"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"非-js-开发者的第一步","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9D%9E-js-%E5%BC%80%E5%8F%91%E8%80%85%E7%9A%84%E7%AC%AC%E4%B8%80%E6%AD%A5","ariaLabel":"非 js 开发者的第一步 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"非 JS 开发者的第一步"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本章节并不是官方教程的一部分,作为读者的你可能擅长于 C++,Python,Java 等其他主流语言,而并不了解基于现代前端技术构建的 VS Code 和他的插件开发语言和模式。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本章参考了官方文档模式,循序渐进地带你了解制作插件的一些编程基础,以免你在阅读文档时晕头转向,本章结束之后,你应该能比较顺利地阅读文档中出现的所有 TypeScript 代码,没有障碍地学习 VS Code 插件基础,但是如果你希望达到一定程度的 TypeScript 编程水平,请参考 "},{"type":"element","tagName":"a","properties":{"href":"https://www.tslang.cn/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"TypeScript 汉化版文档"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当然,本章并不是所有读者必须阅读的,你可以按照自己的喜好或者需要,查询对应的小节,如果你有足够的经验也完全可以跳过本章。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"前端和客户端技术","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E7%AB%AF%E5%92%8C%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%8A%80%E6%9C%AF","ariaLabel":"前端和客户端技术 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前端和客户端技术"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"众所周知,客户端界面技术已是一门非常“老古董”的技术了,从图形系统诞生至今,各类客户端开发技术和模式你方唱罢我登场,淘汰了一批又一批。而 Web 前端技术,在浏览器和网络技术的依托之下还在不断发展,在这期间浏览器对编译器孜孜不倦的优化,终于将 JavaScript 语言提升到了一个新的高度,使 JavaScript 语言进入了传统客户端领域,但是作为开发者必须意识到,即使是在 TypeScript 的加持下,JavaScript 也并没有变成一门真正的静态类型语言,"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"因此你在使用 TypeScript 的时候依旧需要谨慎行事并遵守社区的最佳实践"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们教程学习的对象 VS Code,便是建立在浏览器开源项目 Chromium 演化而来——名为 Electron 的客户端技术之上,它使用了性能极高的 JS 编译器和浏览器界面技术,"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"将前端的三大编程基础 JavaScript,HTML,CSS 无缝地衔接进来,并融合了系统层级的编程接口"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而 VS Code 在此之上进一步封装和优化,将编辑器进程和插件进程独立开来,同时高度封装 DOM(文档对象模型)接口,禁止用户直接修改界面,我们只能通过 VS Code 提供的模式去开发符合规范的插件,虽然这些规定限制了开发者的手脚,但是更带来了安全、稳健、性能上的优势。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"typescript-和-vs-code","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#typescript-%E5%92%8C-vs-code","ariaLabel":"typescript 和 vs code permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TypeScript 和 VS Code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"TypeScript 起初是微软开发的以 JavaScript 为基础的编程语言,他兼容 JavaScript 的所有特性,并扩展了 JS 的类型系统,使得用户在大型系统开发中更加游刃有余。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code 天然支持 TypeScript,帮助开发者写出更加稳定、安全的代码。因此所有文档的示例,包括插件本身,绝大部分都是使用 TypeScript 开发的,俗话说“不积跬步无以至千里”,当你足够了插件的基础之后,阅读文档才会更加顺利。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于 VS Code 已经禁用了 CSS 和 HTML,因此本章不会介绍这些内容,有兴趣的读者可参阅 "},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/zh-CN/docs/Web","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MDN 相关文档"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"认识-typescript-的变量和类型","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AE%A4%E8%AF%86-typescript-%E7%9A%84%E5%8F%98%E9%87%8F%E5%92%8C%E7%B1%BB%E5%9E%8B","ariaLabel":"认识 typescript 的变量和类型 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"认识 TypeScript 的变量和类型"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"TypeScript 变量以及它的类型系统,它本质上和 JavaScript 是一样的,不过东西会更多一点,对于非 js 开发者来说,你可能会遇到熟悉的“枚举”、“元组”类型,了解了这点,或许能让你安心并更快地掌握 TS,但是这并不意味着你就可以高枕无忧了,虽然 TS 扩展了 JS 的类型能力,但它本质上依旧是一门弱类型语言,请在书写代码时遵循社区的最佳实践并保持谨慎。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"相关内容学习可见:"},{"type":"element","tagName":"a","properties":{"href":"https://www.tslang.cn/docs/home.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"TypeScript 汉化版文档"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始"},"parent":{"relativePath":"extension/vscode/overview.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/vscode/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当前已支持 VS Code 1.74.0 以下的大部分标准 API"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 插件是 VS Code 插件的一个超集,这意味着一个 OpenSumi 插件即可以包含 VS Code 插件体系,同时还支持 OpenSumi 自有的插件体系,它们都是可选的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可以通过下面的一些文档了解 VS Code 插件的相关开发技巧"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"相关资料","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%9B%B8%E5%85%B3%E8%B5%84%E6%96%99","ariaLabel":"相关资料 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"相关资料"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 插件开发文档"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/Liiked/VS-Code-Extension-Doc-ZH","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 插件开发文档(汉化)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-extension-samples","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 插件示例"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"预备知识","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%A2%84%E5%A4%87%E7%9F%A5%E8%AF%86","ariaLabel":"预备知识 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"预备知识"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"非-js-开发者的第一步","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9D%9E-js-%E5%BC%80%E5%8F%91%E8%80%85%E7%9A%84%E7%AC%AC%E4%B8%80%E6%AD%A5","ariaLabel":"非 js 开发者的第一步 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"非 JS 开发者的第一步"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本章节并不是官方教程的一部分,作为读者的你可能擅长于 C++,Python,Java 等其他主流语言,而并不了解基于现代前端技术构建的 VS Code 和他的插件开发语言和模式。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"本章参考了官方文档模式,循序渐进地带你了解制作插件的一些编程基础,以免你在阅读文档时晕头转向,本章结束之后,你应该能比较顺利地阅读文档中出现的所有 TypeScript 代码,没有障碍地学习 VS Code 插件基础,但是如果你希望达到一定程度的 TypeScript 编程水平,请参考 "},{"type":"element","tagName":"a","properties":{"href":"https://www.tslang.cn/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"TypeScript 汉化版文档"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当然,本章并不是所有读者必须阅读的,你可以按照自己的喜好或者需要,查询对应的小节,如果你有足够的经验也完全可以跳过本章。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"前端和客户端技术","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E7%AB%AF%E5%92%8C%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%8A%80%E6%9C%AF","ariaLabel":"前端和客户端技术 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前端和客户端技术"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"众所周知,客户端界面技术已是一门非常“老古董”的技术了,从图形系统诞生至今,各类客户端开发技术和模式你方唱罢我登场,淘汰了一批又一批。而 Web 前端技术,在浏览器和网络技术的依托之下还在不断发展,在这期间浏览器对编译器孜孜不倦的优化,终于将 JavaScript 语言提升到了一个新的高度,使 JavaScript 语言进入了传统客户端领域,但是作为开发者必须意识到,即使是在 TypeScript 的加持下,JavaScript 也并没有变成一门真正的静态类型语言,"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"因此你在使用 TypeScript 的时候依旧需要谨慎行事并遵守社区的最佳实践"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们教程学习的对象 VS Code,便是建立在浏览器开源项目 Chromium 演化而来——名为 Electron 的客户端技术之上,它使用了性能极高的 JS 编译器和浏览器界面技术,"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"将前端的三大编程基础 JavaScript,HTML,CSS 无缝地衔接进来,并融合了系统层级的编程接口"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而 VS Code 在此之上进一步封装和优化,将编辑器进程和插件进程独立开来,同时高度封装 DOM(文档对象模型)接口,禁止用户直接修改界面,我们只能通过 VS Code 提供的模式去开发符合规范的插件,虽然这些规定限制了开发者的手脚,但是更带来了安全、稳健、性能上的优势。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"typescript-和-vs-code","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#typescript-%E5%92%8C-vs-code","ariaLabel":"typescript 和 vs code permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"TypeScript 和 VS Code"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"TypeScript 起初是微软开发的以 JavaScript 为基础的编程语言,他兼容 JavaScript 的所有特性,并扩展了 JS 的类型系统,使得用户在大型系统开发中更加游刃有余。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"VS Code 天然支持 TypeScript,帮助开发者写出更加稳定、安全的代码。因此所有文档的示例,包括插件本身,绝大部分都是使用 TypeScript 开发的,俗话说“不积跬步无以至千里”,当你足够了插件的基础之后,阅读文档才会更加顺利。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于 VS Code 已经禁用了 CSS 和 HTML,因此本章不会介绍这些内容,有兴趣的读者可参阅 "},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/zh-CN/docs/Web","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MDN 相关文档"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"认识-typescript-的变量和类型","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AE%A4%E8%AF%86-typescript-%E7%9A%84%E5%8F%98%E9%87%8F%E5%92%8C%E7%B1%BB%E5%9E%8B","ariaLabel":"认识 typescript 的变量和类型 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"认识 TypeScript 的变量和类型"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"TypeScript 变量以及它的类型系统,它本质上和 JavaScript 是一样的,不过东西会更多一点,对于非 js 开发者来说,你可能会遇到熟悉的“枚举”、“元组”类型,了解了这点,或许能让你安心并更快地掌握 TS,但是这并不意味着你就可以高枕无忧了,虽然 TS 扩展了 JS 的类型能力,但它本质上依旧是一门弱类型语言,请在书写代码时遵循社区的最佳实践并保持谨慎。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"相关内容学习可见:"},{"type":"element","tagName":"a","properties":{"href":"https://www.tslang.cn/docs/home.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"TypeScript 汉化版文档"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始"},"parent":{"relativePath":"extension/vscode/overview.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/extension/web-extension/page-data.json b/page-data/zh/docs/extension/web-extension/page-data.json
        index 4ad87c34..05b1ff22 100644
        --- a/page-data/zh/docs/extension/web-extension/page-data.json
        +++ b/page-data/zh/docs/extension/web-extension/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/web-extension","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,我们提供了一个 Web Worker 实现的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web Worker 插件进程"}]},{"type":"text","value":",提供了一些与 NodeJS 能力无关的、密集计算型的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Web Worker API 具备大多数 Node 插件进程所具备的能力,只是去掉了一些强依赖 NodeJS 的能力,如 FileSystem、Terminal、Task、Debug 等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过这层设计,我们进一步支持了 VS Code 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]},{"type":"text","value":",你可以在我们的纯前端版本中方便的使用一些纯前端插件如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-anycode","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"microsoft/vscode-anycode"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/erha19/vscode/blob/8cea434decbabf5259b47e927eca67afede7ad10/extensions/typescript-language-features/package.json#L76","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"vscode/typescript-language-features"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%94%A8%E6%B3%95","ariaLabel":"用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"兼容-vs-code-web-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%BC%E5%AE%B9-vs-code-web-extensions","ariaLabel":"兼容 vs code web extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"兼容 VS Code Web Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考资料 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 VS Code 中,通过在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" 字段去指定 Web Extension 入口,该字段是必选字段, 同时,除了不包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" 字段外,一些贡献点也是不支持的:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localizations"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debuggers"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"typescriptServerPlugins"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这类插件可以直接在 OpenSumi 中使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"另一种用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%A6%E4%B8%80%E7%A7%8D%E7%94%A8%E6%B3%95","ariaLabel":"另一种用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"另一种用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了兼容 VS Code 的 Web Extensions 用法,OpenSumi 也支持在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" 中声明的方式来引入 Worker 环境的插件执行代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker 插件与 NodeJS 端插件非常类似,但需要注意的是不要在 Worker 插件中引用一些原生的模块,同时,Worker API 支持从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-worker"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 两种模块名,这是因为很多 Worker 插件是从 NodeJS 版本迁移而来的,保留 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 这个模块名来兼容这类插件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 从 sumi-worker 中引入 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi–worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// or sumi,这是为了兼容一些迁移到 Worker 环境的插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// import * as sumi from 'sumi';"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// or vscode,也是为了兼容一些迁移到 Worker 环境的 VS Code 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi Worker Extension!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"支持的能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%94%AF%E6%8C%81%E7%9A%84%E8%83%BD%E5%8A%9B","ariaLabel":"支持的能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"支持的能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker API 是 NodeJS API 的子集,基本上除了与 FileSystem、Terminal、Task、Debug 相关的 API,其他都可以运行在 Worker 中。目前支持的 API 包含:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"VS Code API\n"},{"type":"element","tagName":"ul","properties":{"className":["contains-task-list"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" language"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" comments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" workspace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" window"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" env"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"SUMI API\n"},{"type":"element","tagName":"ul","properties":{"className":["contains-task-list"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" layout"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这些 API 的用法保持完全一致,换句话说如果你的插件仅使用了以上 API,同时又没有对 NodeJS 环境的依赖,那么完全可以平滑的迁移到 Worker 插件。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)"},"parent":{"relativePath":"extension/web-extension.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/extension/web-extension","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,我们提供了一个 Web Worker 实现的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web Worker 插件进程"}]},{"type":"text","value":",提供了一些与 NodeJS 能力无关的、密集计算型的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Web Worker API 具备大多数 Node 插件进程所具备的能力,只是去掉了一些强依赖 NodeJS 的能力,如 FileSystem、Terminal、Task、Debug 等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过这层设计,我们进一步支持了 VS Code 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]},{"type":"text","value":",你可以在我们的纯前端版本中方便的使用一些纯前端插件如:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/microsoft/vscode-anycode","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"microsoft/vscode-anycode"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/erha19/vscode/blob/8cea434decbabf5259b47e927eca67afede7ad10/extensions/typescript-language-features/package.json#L76","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"vscode/typescript-language-features"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E7%94%A8%E6%B3%95","ariaLabel":"用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"兼容-vs-code-web-extensions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%BC%E5%AE%B9-vs-code-web-extensions","ariaLabel":"兼容 vs code web extensions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"兼容 VS Code Web Extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考资料 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/extension-guides/web-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Web Extensions"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 VS Code 中,通过在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" 字段去指定 Web Extension 入口,该字段是必选字段, 同时,除了不包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main"}]},{"type":"text","value":" 字段外,一些贡献点也是不支持的:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"localizations"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debuggers"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"typescriptServerPlugins"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这类插件可以直接在 OpenSumi 中使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"另一种用法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%A6%E4%B8%80%E7%A7%8D%E7%94%A8%E6%B3%95","ariaLabel":"另一种用法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"另一种用法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了兼容 VS Code 的 Web Extensions 用法,OpenSumi 也支持在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumiContributes#workerMain"}]},{"type":"text","value":" 中声明的方式来引入 Worker 环境的插件执行代码。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker 插件与 NodeJS 端插件非常类似,但需要注意的是不要在 Worker 插件中引用一些原生的模块,同时,Worker API 支持从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi-worker"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 两种模块名,这是因为很多 Worker 插件是从 NodeJS 版本迁移而来的,保留 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"sumi"}]},{"type":"text","value":" 这个模块名来兼容这类插件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 从 sumi-worker 中引入 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi–worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// or sumi,这是为了兼容一些迁移到 Worker 环境的插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// import * as sumi from 'sumi';"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// or vscode,也是为了兼容一些迁移到 Worker 环境的 VS Code 插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" vscode "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello OpenSumi Worker Extension!'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"支持的能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%94%AF%E6%8C%81%E7%9A%84%E8%83%BD%E5%8A%9B","ariaLabel":"支持的能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"支持的能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Worker API 是 NodeJS API 的子集,基本上除了与 FileSystem、Terminal、Task、Debug 相关的 API,其他都可以运行在 Worker 中。目前支持的 API 包含:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"VS Code API\n"},{"type":"element","tagName":"ul","properties":{"className":["contains-task-list"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" language"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" command"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" comments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" workspace"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" extensions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" window"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" env"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"SUMI API\n"},{"type":"element","tagName":"ul","properties":{"className":["contains-task-list"]},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","checked":true,"disabled":true},"children":[]},{"type":"text","value":" layout"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这些 API 的用法保持完全一致,换句话说如果你的插件仅使用了以上 API,同时又没有对 NodeJS 环境的依赖,那么完全可以平滑的迁移到 Worker 插件。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)"},"parent":{"relativePath":"extension/web-extension.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/browser-extension/opensumi-devtools/page-data.json b/page-data/zh/docs/integrate/browser-extension/opensumi-devtools/page-data.json
        index 53614780..581f6fc6 100644
        --- a/page-data/zh/docs/integrate/browser-extension/opensumi-devtools/page-data.json
        +++ b/page-data/zh/docs/integrate/browser-extension/opensumi-devtools/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/browser-extension/opensumi-devtools","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一款任何基于 OpenSumi 开发的 IDE 产品都能使用的 Chrome DevTools 插件,同时支持 Web 客户端和 Electron 客户端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01kCf4wE254ga71iSmB_!!6000000007473-1-tps-1164-879.gif","alt":"OpenSumi DevTools Gif"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"GitHub:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/devtools","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/devtools"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"功能","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8A%9F%E8%83%BD","ariaLabel":"功能 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"功能"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前该插件主要聚焦于 OpenSumi 内部通信消息的捕获与呈现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"OpenSumi 前后端的 RPC 通信消息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron 客户端中的"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues/2359#issuecomment-1495977098","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"部分"}]},{"type":"text","value":" IPC 通信消息(仅 Electron 端)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用户可以:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"开始/停止捕获消息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"组合过滤消息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"以 JSON 视图查看消息内容"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"查看 RPC 通信流量"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"查看前后端之间的网络延迟"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"安装","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%89%E8%A3%85","ariaLabel":"安装 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"安装"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"请见 README 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/devtools#install","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Install"}]},{"type":"text","value":" 部分。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"集成","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90","ariaLabel":"集成 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"集成"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"只有将 OpenSumi 中与 devtools 相关的配置项打开后,安装的插件才会生效。集成方可以通过这些配置项来决定是否开启对 OpenSumi DevTools 的支持。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"web-客户端","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#web-%E5%AE%A2%E6%88%B7%E7%AB%AF","ariaLabel":"web 客户端 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Web 客户端"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/tree/main/packages/core-browser","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" 模块中的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/bootstrap/app.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]}]},{"type":"text","value":" 使得集成方能够快速启动他们的 Web IDE 产品。现在我们在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" 中增加了"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"devtools"}]},{"type":"text","value":"这个配置项。如此一来,集成方就能控制是否在 Web 客户端中开启 devtools 支持,请见"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/startup/entry/web/app.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"此例"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 是否开启对 OpenSumi DevTools 的支持\n   * 默认值为 false\n   */"}]},{"type":"text","value":"\n  devtools"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"electron-客户端","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#electron-%E5%AE%A2%E6%88%B7%E7%AB%AF","ariaLabel":"electron 客户端 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Electron 客户端"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前,OpenSumi DevTools 只捕获并展示 Electron Renderer 进程一侧的通信消息。由于 Renderer 进程也会利用 core-browser 模块进行初始化,所以和 Web 客户端类似,集成方只需要在 core-browser 侧开启对 devtools 的支持即可,请见"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/tools/electron/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"此例"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools"},"parent":{"relativePath":"integrate/browser-extension/opensumi-devtools.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/browser-extension/opensumi-devtools","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一款任何基于 OpenSumi 开发的 IDE 产品都能使用的 Chrome DevTools 插件,同时支持 Web 客户端和 Electron 客户端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01kCf4wE254ga71iSmB_!!6000000007473-1-tps-1164-879.gif","alt":"OpenSumi DevTools Gif"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"GitHub:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/devtools","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/devtools"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"功能","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8A%9F%E8%83%BD","ariaLabel":"功能 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"功能"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前该插件主要聚焦于 OpenSumi 内部通信消息的捕获与呈现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"OpenSumi 前后端的 RPC 通信消息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron 客户端中的"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues/2359#issuecomment-1495977098","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"部分"}]},{"type":"text","value":" IPC 通信消息(仅 Electron 端)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"用户可以:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"开始/停止捕获消息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"组合过滤消息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"以 JSON 视图查看消息内容"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"查看 RPC 通信流量"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"查看前后端之间的网络延迟"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"安装","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%89%E8%A3%85","ariaLabel":"安装 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"安装"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"请见 README 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/devtools#install","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Install"}]},{"type":"text","value":" 部分。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"集成","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90","ariaLabel":"集成 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"集成"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"只有将 OpenSumi 中与 devtools 相关的配置项打开后,安装的插件才会生效。集成方可以通过这些配置项来决定是否开启对 OpenSumi DevTools 的支持。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"web-客户端","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#web-%E5%AE%A2%E6%88%B7%E7%AB%AF","ariaLabel":"web 客户端 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Web 客户端"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/tree/main/packages/core-browser","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"core-browser"}]},{"type":"text","value":" 模块中的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/bootstrap/app.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]}]},{"type":"text","value":" 使得集成方能够快速启动他们的 Web IDE 产品。现在我们在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" 中增加了"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"devtools"}]},{"type":"text","value":"这个配置项。如此一来,集成方就能控制是否在 Web 客户端中开启 devtools 支持,请见"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/startup/entry/web/app.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"此例"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * 是否开启对 OpenSumi DevTools 的支持\n   * 默认值为 false\n   */"}]},{"type":"text","value":"\n  devtools"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" boolean"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"electron-客户端","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#electron-%E5%AE%A2%E6%88%B7%E7%AB%AF","ariaLabel":"electron 客户端 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Electron 客户端"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前,OpenSumi DevTools 只捕获并展示 Electron Renderer 进程一侧的通信消息。由于 Renderer 进程也会利用 core-browser 模块进行初始化,所以和 Web 客户端类似,集成方只需要在 core-browser 侧开启对 devtools 的支持即可,请见"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/tools/electron/src/browser/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"此例"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools"},"parent":{"relativePath":"integrate/browser-extension/opensumi-devtools.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/browser-extension/shortcuts-guard/page-data.json b/page-data/zh/docs/integrate/browser-extension/shortcuts-guard/page-data.json
        index 0bde1445..ded82393 100644
        --- a/page-data/zh/docs/integrate/browser-extension/shortcuts-guard/page-data.json
        +++ b/page-data/zh/docs/integrate/browser-extension/shortcuts-guard/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/browser-extension/shortcuts-guard","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"基于 OpenSumi 开发的 IDE 的快捷键存在和谷歌浏览器快捷键冲突的情况,这些情况让 IDE 对应行为无法生效。例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl/Cmd + W"}]},{"type":"text","value":" 快捷键会关闭当前浏览器的标签页,使得 IDE 无法处理这个快捷键事件。Shortcuts Guard 解决常用的快捷键冲突。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://gw.alipayobjects.com/zos/antfincdn/Vplt6x5G9/4b3c7a42-f9b6-4b36-a42e-d814397c6137.png","alt":"popup 页面"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用说明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E","ariaLabel":"使用说明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"前往插件仓库的"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/shortcuts-guard/releases","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"发布页面"}]},{"type":"text","value":"或者 "},{"type":"element","tagName":"a","properties":{"href":"https://chrome.google.com/webstore/detail/shortcuts-guard/nephehdkdelkjgiihmhdjpedpoinmpjl?hl=zh-CN","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chrome 应用商店"}]},{"type":"text","value":"获取 Shortcuts Guard。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"点击插件图标,然后会出现一个 popup 页面。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在 popup 页面中输入可为匹配模式的 URL,插件会在你输入的 URL 上守护 IDE 快捷键。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"点击 popup 页面右上角键盘图标,前往快捷键设置页面,然后输入冲突的快捷键。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"匹配模式","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8C%B9%E9%85%8D%E6%A8%A1%E5%BC%8F","ariaLabel":"匹配模式 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"匹配模式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"支持点击 popup 页面新增 URL 输入框内的铅笔按钮,自动获取当前浏览器页面 URL 的匹配模式到输入框中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"基本语法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95","ariaLabel":"基本语法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基本语法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" := <协议>://<主机><路径>\n<协议> := '*' | 'http' | 'https'\n<主机> := '*' | '*.' <除了 '/' 和 '*' 外的任何字符>+\n<路径> := '/' <任何字符>"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"例子","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BE%8B%E5%AD%90","ariaLabel":"例子 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"例子"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"模式"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"效果"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"匹配的 URLs 例子"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" 协议的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://example.org/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*/foo*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" 协议且路径以"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"/foo"}]},{"type":"text","value":"开头的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://example.com/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.com/foo/bar.html"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/foo","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/foo"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*.google.com/foo*bar"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" 协议、基于 google.com 的主机(例如 "},{"type":"element","tagName":"a","properties":{"href":"http://www.google.xn--comdocs-0o3f.google.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"www.google.com、docs.google.com"}]},{"type":"text","value":" 或 google.com)且路径以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"/foo"}]},{"type":"text","value":" 开头并以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"bar"}]},{"type":"text","value":" 结尾的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/foo/baz/bar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/foo/baz/bar"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://docs.google.com/foobar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://docs.google.com/foobar"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配指定的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://example.org/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http"}]},{"type":"text","value":" 协议且主机为 127.0.0.1 的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1/"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"*://mail.google.com/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://mail.google.com"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://mail.google.com"}]},{"type":"text","value":" 开头的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://mail.google.com/foo/baz/bar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://mail.google.com/foo/baz/bar"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://mail.google.com/foobar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://mail.google.com/foobar"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考 "},{"type":"element","tagName":"a","properties":{"href":"https://developer.chrome.com/docs/extensions/mv3/match_patterns/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Match patterns - Chrome Developers"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"守护的快捷键","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%88%E6%8A%A4%E7%9A%84%E5%BF%AB%E6%8D%B7%E9%94%AE","ariaLabel":"守护的快捷键 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"守护的快捷键"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Windows 快捷键"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Mac 快捷键"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"IDE 行为"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Chrome 行为"}]}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + n"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + n"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"新的无标题文件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开新窗口"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前标签页"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"展示工作区符号"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开新的标签页,并跳转到该标签页"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + Shift + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + Shift + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"重新打开已关闭的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"按标签页的关闭顺序重新打开先前关闭的标签页"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + Shift + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + Shift + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前标签页"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前窗口"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考 "},{"type":"element","tagName":"a","properties":{"href":"https://support.google.com/chrome/answer/157179?co=GENIE.Platform%3DDesktop&hl=zh-Hans#zippy=%2C%E6%A0%87%E7%AD%BE%E9%A1%B5%E5%92%8C%E7%AA%97%E5%8F%A3%E5%BF%AB%E6%8D%B7%E9%94%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chrome 快捷键 "}]},{"type":"text","value":"和 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 快捷键"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard"},"parent":{"relativePath":"integrate/browser-extension/shortcuts-guard.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/browser-extension/shortcuts-guard","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"基于 OpenSumi 开发的 IDE 的快捷键存在和谷歌浏览器快捷键冲突的情况,这些情况让 IDE 对应行为无法生效。例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl/Cmd + W"}]},{"type":"text","value":" 快捷键会关闭当前浏览器的标签页,使得 IDE 无法处理这个快捷键事件。Shortcuts Guard 解决常用的快捷键冲突。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://gw.alipayobjects.com/zos/antfincdn/Vplt6x5G9/4b3c7a42-f9b6-4b36-a42e-d814397c6137.png","alt":"popup 页面"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用说明","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E","ariaLabel":"使用说明 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用说明"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"前往插件仓库的"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/shortcuts-guard/releases","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"发布页面"}]},{"type":"text","value":"或者 "},{"type":"element","tagName":"a","properties":{"href":"https://chrome.google.com/webstore/detail/shortcuts-guard/nephehdkdelkjgiihmhdjpedpoinmpjl?hl=zh-CN","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chrome 应用商店"}]},{"type":"text","value":"获取 Shortcuts Guard。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"点击插件图标,然后会出现一个 popup 页面。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在 popup 页面中输入可为匹配模式的 URL,插件会在你输入的 URL 上守护 IDE 快捷键。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"点击 popup 页面右上角键盘图标,前往快捷键设置页面,然后输入冲突的快捷键。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"匹配模式","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8C%B9%E9%85%8D%E6%A8%A1%E5%BC%8F","ariaLabel":"匹配模式 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"匹配模式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"支持点击 popup 页面新增 URL 输入框内的铅笔按钮,自动获取当前浏览器页面 URL 的匹配模式到输入框中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"基本语法","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95","ariaLabel":"基本语法 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"基本语法"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"text"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-text"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":" := <协议>://<主机><路径>\n<协议> := '*' | 'http' | 'https'\n<主机> := '*' | '*.' <除了 '/' 和 '*' 外的任何字符>+\n<路径> := '/' <任何字符>"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"例子","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BE%8B%E5%AD%90","ariaLabel":"例子 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"例子"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"模式"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"效果"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"匹配的 URLs 例子"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" 协议的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://example.org/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*/foo*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" 协议且路径以"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"/foo"}]},{"type":"text","value":"开头的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://example.com/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.com/foo/bar.html"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/foo","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/foo"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://*.google.com/foo*bar"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https"}]},{"type":"text","value":" 协议、基于 google.com 的主机(例如 "},{"type":"element","tagName":"a","properties":{"href":"http://www.google.xn--comdocs-0o3f.google.com/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"www.google.com、docs.google.com"}]},{"type":"text","value":" 或 google.com)且路径以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"/foo"}]},{"type":"text","value":" 开头并以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"bar"}]},{"type":"text","value":" 结尾的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.google.com/foo/baz/bar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://www.google.com/foo/baz/bar"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://docs.google.com/foobar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://docs.google.com/foobar"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配指定的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://example.org/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://example.org/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http"}]},{"type":"text","value":" 协议且主机为 127.0.0.1 的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1/"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1/foo/bar.html","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1/foo/bar.html"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"*://mail.google.com/*"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"匹配任何以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://mail.google.com"}]},{"type":"text","value":" 或 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://mail.google.com"}]},{"type":"text","value":" 开头的 URL"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://mail.google.com/foo/baz/bar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://mail.google.com/foo/baz/bar"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://mail.google.com/foobar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://mail.google.com/foobar"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考 "},{"type":"element","tagName":"a","properties":{"href":"https://developer.chrome.com/docs/extensions/mv3/match_patterns/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Match patterns - Chrome Developers"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"守护的快捷键","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%88%E6%8A%A4%E7%9A%84%E5%BF%AB%E6%8D%B7%E9%94%AE","ariaLabel":"守护的快捷键 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"守护的快捷键"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Windows 快捷键"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Mac 快捷键"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"IDE 行为"}]}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Chrome 行为"}]}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + n"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + n"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"新的无标题文件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开新窗口"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前标签页"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"展示工作区符号"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开新的标签页,并跳转到该标签页"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + Shift + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + Shift + t"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"重新打开已关闭的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"按标签页的关闭顺序重新打开先前关闭的标签页"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Ctrl + Shift + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"⌘ + Shift + w"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前标签页"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前窗口"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考 "},{"type":"element","tagName":"a","properties":{"href":"https://support.google.com/chrome/answer/157179?co=GENIE.Platform%3DDesktop&hl=zh-Hans#zippy=%2C%E6%A0%87%E7%AD%BE%E9%A1%B5%E5%92%8C%E7%AA%97%E5%8F%A3%E5%BF%AB%E6%8D%B7%E9%94%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Chrome 快捷键 "}]},{"type":"text","value":"和 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VS Code 快捷键"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard"},"parent":{"relativePath":"integrate/browser-extension/shortcuts-guard.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/extensions-usage/language-for-java/page-data.json b/page-data/zh/docs/integrate/extensions-usage/language-for-java/page-data.json
        index 5336fa57..3322593e 100644
        --- a/page-data/zh/docs/integrate/extensions-usage/language-for-java/page-data.json
        +++ b/page-data/zh/docs/integrate/extensions-usage/language-for-java/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/extensions-usage/language-for-java","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"依靠强大的插件体系和 LSP、DAP 和 Testing 协议的完整实现支持, OpenSumi 同样可以开发 Java 项目,比如 Spring Boot 或 SOFA 系,也能使用 Maven 构建工具来编译和运行项目,能完整的进行 Java 项目的研发、调试和测试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"配套的就需要安装以下的插件,可以直接在插件市场搜索安装下载"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"Language Support "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.4"}]},{"type":"text","value":".0 版本\nDebugger "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.38"}]},{"type":"text","value":".0 版本\nTest runner "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.34"}]},{"type":"text","value":".1 版本"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"安装这三件套之后,就能进行 Java 项目的研发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN019llEwh1u7TG9OOals_!!6000000005990-2-tps-1047-479.png","alt":"Java研发"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果是 Maven 项目则可以安装这个插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"Maven "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.35"}]},{"type":"text","value":".1 版本"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后在左侧资源管理器面板的下方视图就能进行 Maven 的一些编译打包命令"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01BFznav29sqSeuKrJp_!!6000000008124-0-tps-498-388.jpg","alt":"Maven"},"children":[]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件"},"parent":{"relativePath":"integrate/extensions-usage/language-for-java.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/extensions-usage/language-for-java","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"依靠强大的插件体系和 LSP、DAP 和 Testing 协议的完整实现支持, OpenSumi 同样可以开发 Java 项目,比如 Spring Boot 或 SOFA 系,也能使用 Maven 构建工具来编译和运行项目,能完整的进行 Java 项目的研发、调试和测试。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"配套的就需要安装以下的插件,可以直接在插件市场搜索安装下载"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"Language Support "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1.4"}]},{"type":"text","value":".0 版本\nDebugger "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.38"}]},{"type":"text","value":".0 版本\nTest runner "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.34"}]},{"type":"text","value":".1 版本"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"安装这三件套之后,就能进行 Java 项目的研发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN019llEwh1u7TG9OOals_!!6000000005990-2-tps-1047-479.png","alt":"Java研发"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果是 Maven 项目则可以安装这个插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"Maven "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" Java: "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.35"}]},{"type":"text","value":".1 版本"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后在左侧资源管理器面板的下方视图就能进行 Maven 的一些编译打包命令"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01BFznav29sqSeuKrJp_!!6000000008124-0-tps-498-388.jpg","alt":"Maven"},"children":[]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件"},"parent":{"relativePath":"integrate/extensions-usage/language-for-java.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/module-usage/3-way-merge-editor/page-data.json b/page-data/zh/docs/integrate/module-usage/3-way-merge-editor/page-data.json
        index 2e2fdc34..d1b0e0b3 100644
        --- a/page-data/zh/docs/integrate/module-usage/3-way-merge-editor/page-data.json
        +++ b/page-data/zh/docs/integrate/module-usage/3-way-merge-editor/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/module-usage/3-way-merge-editor","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"集成方式","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90%E6%96%B9%E5%BC%8F","ariaLabel":"集成方式 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"集成方式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"只需要安装 git 插件即可"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"1.68.1"}]},{"type":"text","value":" 版本,则需要配置设置项 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git.experimental.mergeEditor"}]},{"type":"text","value":" 为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n如果安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"1.69.0"}]},{"type":"text","value":" 以上版本,则需要配置设置项 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git.mergeEditor"}]},{"type":"text","value":" 为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"true"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"配置完成后在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scm"}]},{"type":"text","value":" 面板的 merge change 视图直接打开冲突的文件,就能使用到 3-way 交互"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"先看看效果","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%88%E7%9C%8B%E7%9C%8B%E6%95%88%E6%9E%9C","ariaLabel":"先看看效果 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"先看看效果"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN010IFGBV1GreZ1rg5CB_!!6000000000676-1-tps-924-491.gif","alt":"3-way"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"如何使用-3-way-merge-editor-新交互来解决代码冲突","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-3-way-merge-editor-%E6%96%B0%E4%BA%A4%E4%BA%92%E6%9D%A5%E8%A7%A3%E5%86%B3%E4%BB%A3%E7%A0%81%E5%86%B2%E7%AA%81","ariaLabel":"如何使用 3 way merge editor 新交互来解决代码冲突 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何使用 3-way merge editor 新交互来解决代码冲突"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01HgqlKH1DZqJZh25jd_!!6000000000231-0-tps-1500-718.jpg","alt":"截屏2023-02-06 15.55.34.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"3-way merge editor 提供了更直观更丰富的代码冲突解决交互,主要由三个窗口组成"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"左侧编辑器显示当前本地磁盘文件的只读副本"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"右侧编辑器显示远程仓库传入的文件只读副本"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"中间编辑器显示两个冲突分支的共同祖先 base 分支的可读写文件,所有的解决冲突交互结果都在中间视图展示"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"planttext"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-planttext"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-planttext"]},"children":[{"type":"text","value":"3-way merge editor 是借助了 git 本身的 diff3 特性,向你展示了你的代码文件为什么会发生冲突,并将文件的所有代码内容改动(不管这个改动有没有冲突)都展示出来。\n\n而旧版的解决冲突,他只是把哪里有冲突的改动给你展示了出来,并默认将 incoming 的传入文件其他未发生冲突的地方给自动 merge 了。\n\n所以你在 3-way 视图当中会看到,没有冲突的地方也会有交互的操作,这是必要的操作步骤"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"操作步骤","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%93%8D%E4%BD%9C%E6%AD%A5%E9%AA%A4","ariaLabel":"操作步骤 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"操作步骤"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"1-点击源代码管理面板内的冲突文件将弹出-3-way-merge-editor-面板","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#1-%E7%82%B9%E5%87%BB%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86%E9%9D%A2%E6%9D%BF%E5%86%85%E7%9A%84%E5%86%B2%E7%AA%81%E6%96%87%E4%BB%B6%E5%B0%86%E5%BC%B9%E5%87%BA-3-way-merge-editor-%E9%9D%A2%E6%9D%BF","ariaLabel":"1 点击源代码管理面板内的冲突文件将弹出 3 way merge editor 面板 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"1. 点击"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"源代码管理面板"}]},{"type":"text","value":"内的冲突文件将弹出 3-way merge editor 面板"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"2-要解决冲突可以通过操作项接受--或-忽略-x来决定要接收左侧本地还是右侧远程仓库的冲突代码片段并在中间视图检查冲突解决后的代码是否符合你的预期","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#2-%E8%A6%81%E8%A7%A3%E5%86%B3%E5%86%B2%E7%AA%81%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E6%93%8D%E4%BD%9C%E9%A1%B9%E6%8E%A5%E5%8F%97--%E6%88%96-%E5%BF%BD%E7%95%A5-x%E6%9D%A5%E5%86%B3%E5%AE%9A%E8%A6%81%E6%8E%A5%E6%94%B6%E5%B7%A6%E4%BE%A7%E6%9C%AC%E5%9C%B0%E8%BF%98%E6%98%AF%E5%8F%B3%E4%BE%A7%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E5%86%B2%E7%AA%81%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%E5%B9%B6%E5%9C%A8%E4%B8%AD%E9%97%B4%E8%A7%86%E5%9B%BE%E6%A3%80%E6%9F%A5%E5%86%B2%E7%AA%81%E8%A7%A3%E5%86%B3%E5%90%8E%E7%9A%84%E4%BB%A3%E7%A0%81%E6%98%AF%E5%90%A6%E7%AC%A6%E5%90%88%E4%BD%A0%E7%9A%84%E9%A2%84%E6%9C%9F","ariaLabel":"2 要解决冲突可以通过操作项接受  或 忽略 x来决定要接收左侧本地还是右侧远程仓库的冲突代码片段并在中间视图检查冲突解决后的代码是否符合你的预期 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"2. 要解决冲突,可以通过**操作项(接受 >> 或 忽略 x)**来决定要接收左侧(本地)还是右侧(远程仓库)的冲突代码片段,并在中间视图检查冲突解决后的代码是否符合你的预期"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"a-对于没有冲突的代码区域","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#a-%E5%AF%B9%E4%BA%8E%E6%B2%A1%E6%9C%89%E5%86%B2%E7%AA%81%E7%9A%84%E4%BB%A3%E7%A0%81%E5%8C%BA%E5%9F%9F","ariaLabel":"a 对于没有冲突的代码区域 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"a. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"对于没有冲突的代码区域"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01JipHOl1g2ykh4JpcJ_!!6000000004085-2-tps-1364-473.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"b-对于有冲突的代码区域","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#b-%E5%AF%B9%E4%BA%8E%E6%9C%89%E5%86%B2%E7%AA%81%E7%9A%84%E4%BB%A3%E7%A0%81%E5%8C%BA%E5%9F%9F","ariaLabel":"b 对于有冲突的代码区域 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"b. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"对于有冲突的代码区域"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01N75a2S1QHbY7VhH4W_!!6000000001951-2-tps-1393-296.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"c-选择接受左侧区域的代码内容后还想继续接受右侧区域的代码内容相当于-accept-combination","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#c-%E9%80%89%E6%8B%A9%E6%8E%A5%E5%8F%97%E5%B7%A6%E4%BE%A7%E5%8C%BA%E5%9F%9F%E7%9A%84%E4%BB%A3%E7%A0%81%E5%86%85%E5%AE%B9%E5%90%8E%E8%BF%98%E6%83%B3%E7%BB%A7%E7%BB%AD%E6%8E%A5%E5%8F%97%E5%8F%B3%E4%BE%A7%E5%8C%BA%E5%9F%9F%E7%9A%84%E4%BB%A3%E7%A0%81%E5%86%85%E5%AE%B9%E7%9B%B8%E5%BD%93%E4%BA%8E-accept-combination","ariaLabel":"c 选择接受左侧区域的代码内容后还想继续接受右侧区域的代码内容相当于 accept combination permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"c. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"选择接受左侧区域的代码内容后,还想继续接受右侧区域的代码内容(相当于 accept combination)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01IDqxvg1Yqsz1o2a6p_!!6000000003111-2-tps-1375-309.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"d-对于简单的冲突比如某一块代码区域左右两侧都有做修改但这个修改并不会导致冲突此时就会提供一键合并更改的操作","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#d-%E5%AF%B9%E4%BA%8E%E7%AE%80%E5%8D%95%E7%9A%84%E5%86%B2%E7%AA%81%E6%AF%94%E5%A6%82%E6%9F%90%E4%B8%80%E5%9D%97%E4%BB%A3%E7%A0%81%E5%8C%BA%E5%9F%9F%E5%B7%A6%E5%8F%B3%E4%B8%A4%E4%BE%A7%E9%83%BD%E6%9C%89%E5%81%9A%E4%BF%AE%E6%94%B9%E4%BD%86%E8%BF%99%E4%B8%AA%E4%BF%AE%E6%94%B9%E5%B9%B6%E4%B8%8D%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%86%B2%E7%AA%81%E6%AD%A4%E6%97%B6%E5%B0%B1%E4%BC%9A%E6%8F%90%E4%BE%9B%E4%B8%80%E9%94%AE%E5%90%88%E5%B9%B6%E6%9B%B4%E6%94%B9%E7%9A%84%E6%93%8D%E4%BD%9C","ariaLabel":"d 对于简单的冲突比如某一块代码区域左右两侧都有做修改但这个修改并不会导致冲突此时就会提供一键合并更改的操作 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"d. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"对于简单的冲突(比如,某一块代码区域左右两侧都有做修改,但这个修改并不会导致冲突,此时就会提供一键合并更改的操作)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01NjznPQ23CoPxApQM9_!!6000000007220-2-tps-1377-301.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"3-解决冲突完成点击应用更改保存最终结果","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#3-%E8%A7%A3%E5%86%B3%E5%86%B2%E7%AA%81%E5%AE%8C%E6%88%90%E7%82%B9%E5%87%BB%E5%BA%94%E7%94%A8%E6%9B%B4%E6%94%B9%E4%BF%9D%E5%AD%98%E6%9C%80%E7%BB%88%E7%BB%93%E6%9E%9C","ariaLabel":"3 解决冲突完成点击应用更改保存最终结果 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"3. 解决冲突完成点击"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"应用更改"}]},{"type":"text","value":"保存最终结果"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"4-源代码管理面板中点击code-classlanguage-textcode按钮存储更改内容","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#4-%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86%E9%9D%A2%E6%9D%BF%E4%B8%AD%E7%82%B9%E5%87%BBcode-classlanguage-textcode%E6%8C%89%E9%92%AE%E5%AD%98%E5%82%A8%E6%9B%B4%E6%94%B9%E5%86%85%E5%AE%B9","ariaLabel":"4 源代码管理面板中点击code classlanguage textcode按钮存储更改内容 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"4. 源代码管理面板中点击"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":"按钮存储更改内容"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01zop9PJ26BqQVmqPb0_!!6000000007624-0-tps-1500-610.jpg","alt":"截屏2023-02-03 17.34.54.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"5-最后提交代码即可","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#5-%E6%9C%80%E5%90%8E%E6%8F%90%E4%BA%A4%E4%BB%A3%E7%A0%81%E5%8D%B3%E5%8F%AF","ariaLabel":"5 最后提交代码即可 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"5. 最后提交代码即可"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互"},"parent":{"relativePath":"integrate/module-usage/3-way-merge-editor.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/module-usage/3-way-merge-editor","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"集成方式","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90%E6%96%B9%E5%BC%8F","ariaLabel":"集成方式 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"集成方式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"只需要安装 git 插件即可"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"1.68.1"}]},{"type":"text","value":" 版本,则需要配置设置项 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git.experimental.mergeEditor"}]},{"type":"text","value":" 为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n如果安装 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"1.69.0"}]},{"type":"text","value":" 以上版本,则需要配置设置项 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git.mergeEditor"}]},{"type":"text","value":" 为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"true"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"配置完成后在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scm"}]},{"type":"text","value":" 面板的 merge change 视图直接打开冲突的文件,就能使用到 3-way 交互"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"先看看效果","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%88%E7%9C%8B%E7%9C%8B%E6%95%88%E6%9E%9C","ariaLabel":"先看看效果 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"先看看效果"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN010IFGBV1GreZ1rg5CB_!!6000000000676-1-tps-924-491.gif","alt":"3-way"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"如何使用-3-way-merge-editor-新交互来解决代码冲突","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-3-way-merge-editor-%E6%96%B0%E4%BA%A4%E4%BA%92%E6%9D%A5%E8%A7%A3%E5%86%B3%E4%BB%A3%E7%A0%81%E5%86%B2%E7%AA%81","ariaLabel":"如何使用 3 way merge editor 新交互来解决代码冲突 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何使用 3-way merge editor 新交互来解决代码冲突"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01HgqlKH1DZqJZh25jd_!!6000000000231-0-tps-1500-718.jpg","alt":"截屏2023-02-06 15.55.34.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"3-way merge editor 提供了更直观更丰富的代码冲突解决交互,主要由三个窗口组成"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"左侧编辑器显示当前本地磁盘文件的只读副本"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"右侧编辑器显示远程仓库传入的文件只读副本"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"中间编辑器显示两个冲突分支的共同祖先 base 分支的可读写文件,所有的解决冲突交互结果都在中间视图展示"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"planttext"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-planttext"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-planttext"]},"children":[{"type":"text","value":"3-way merge editor 是借助了 git 本身的 diff3 特性,向你展示了你的代码文件为什么会发生冲突,并将文件的所有代码内容改动(不管这个改动有没有冲突)都展示出来。\n\n而旧版的解决冲突,他只是把哪里有冲突的改动给你展示了出来,并默认将 incoming 的传入文件其他未发生冲突的地方给自动 merge 了。\n\n所以你在 3-way 视图当中会看到,没有冲突的地方也会有交互的操作,这是必要的操作步骤"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"操作步骤","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%93%8D%E4%BD%9C%E6%AD%A5%E9%AA%A4","ariaLabel":"操作步骤 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"操作步骤"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"1-点击源代码管理面板内的冲突文件将弹出-3-way-merge-editor-面板","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#1-%E7%82%B9%E5%87%BB%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86%E9%9D%A2%E6%9D%BF%E5%86%85%E7%9A%84%E5%86%B2%E7%AA%81%E6%96%87%E4%BB%B6%E5%B0%86%E5%BC%B9%E5%87%BA-3-way-merge-editor-%E9%9D%A2%E6%9D%BF","ariaLabel":"1 点击源代码管理面板内的冲突文件将弹出 3 way merge editor 面板 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"1. 点击"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"源代码管理面板"}]},{"type":"text","value":"内的冲突文件将弹出 3-way merge editor 面板"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"2-要解决冲突可以通过操作项接受--或-忽略-x来决定要接收左侧本地还是右侧远程仓库的冲突代码片段并在中间视图检查冲突解决后的代码是否符合你的预期","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#2-%E8%A6%81%E8%A7%A3%E5%86%B3%E5%86%B2%E7%AA%81%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E6%93%8D%E4%BD%9C%E9%A1%B9%E6%8E%A5%E5%8F%97--%E6%88%96-%E5%BF%BD%E7%95%A5-x%E6%9D%A5%E5%86%B3%E5%AE%9A%E8%A6%81%E6%8E%A5%E6%94%B6%E5%B7%A6%E4%BE%A7%E6%9C%AC%E5%9C%B0%E8%BF%98%E6%98%AF%E5%8F%B3%E4%BE%A7%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E5%86%B2%E7%AA%81%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%E5%B9%B6%E5%9C%A8%E4%B8%AD%E9%97%B4%E8%A7%86%E5%9B%BE%E6%A3%80%E6%9F%A5%E5%86%B2%E7%AA%81%E8%A7%A3%E5%86%B3%E5%90%8E%E7%9A%84%E4%BB%A3%E7%A0%81%E6%98%AF%E5%90%A6%E7%AC%A6%E5%90%88%E4%BD%A0%E7%9A%84%E9%A2%84%E6%9C%9F","ariaLabel":"2 要解决冲突可以通过操作项接受  或 忽略 x来决定要接收左侧本地还是右侧远程仓库的冲突代码片段并在中间视图检查冲突解决后的代码是否符合你的预期 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"2. 要解决冲突,可以通过**操作项(接受 >> 或 忽略 x)**来决定要接收左侧(本地)还是右侧(远程仓库)的冲突代码片段,并在中间视图检查冲突解决后的代码是否符合你的预期"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"a-对于没有冲突的代码区域","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#a-%E5%AF%B9%E4%BA%8E%E6%B2%A1%E6%9C%89%E5%86%B2%E7%AA%81%E7%9A%84%E4%BB%A3%E7%A0%81%E5%8C%BA%E5%9F%9F","ariaLabel":"a 对于没有冲突的代码区域 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"a. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"对于没有冲突的代码区域"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01JipHOl1g2ykh4JpcJ_!!6000000004085-2-tps-1364-473.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"b-对于有冲突的代码区域","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#b-%E5%AF%B9%E4%BA%8E%E6%9C%89%E5%86%B2%E7%AA%81%E7%9A%84%E4%BB%A3%E7%A0%81%E5%8C%BA%E5%9F%9F","ariaLabel":"b 对于有冲突的代码区域 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"b. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"对于有冲突的代码区域"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01N75a2S1QHbY7VhH4W_!!6000000001951-2-tps-1393-296.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"c-选择接受左侧区域的代码内容后还想继续接受右侧区域的代码内容相当于-accept-combination","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#c-%E9%80%89%E6%8B%A9%E6%8E%A5%E5%8F%97%E5%B7%A6%E4%BE%A7%E5%8C%BA%E5%9F%9F%E7%9A%84%E4%BB%A3%E7%A0%81%E5%86%85%E5%AE%B9%E5%90%8E%E8%BF%98%E6%83%B3%E7%BB%A7%E7%BB%AD%E6%8E%A5%E5%8F%97%E5%8F%B3%E4%BE%A7%E5%8C%BA%E5%9F%9F%E7%9A%84%E4%BB%A3%E7%A0%81%E5%86%85%E5%AE%B9%E7%9B%B8%E5%BD%93%E4%BA%8E-accept-combination","ariaLabel":"c 选择接受左侧区域的代码内容后还想继续接受右侧区域的代码内容相当于 accept combination permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"c. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"选择接受左侧区域的代码内容后,还想继续接受右侧区域的代码内容(相当于 accept combination)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i2/O1CN01IDqxvg1Yqsz1o2a6p_!!6000000003111-2-tps-1375-309.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"d-对于简单的冲突比如某一块代码区域左右两侧都有做修改但这个修改并不会导致冲突此时就会提供一键合并更改的操作","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#d-%E5%AF%B9%E4%BA%8E%E7%AE%80%E5%8D%95%E7%9A%84%E5%86%B2%E7%AA%81%E6%AF%94%E5%A6%82%E6%9F%90%E4%B8%80%E5%9D%97%E4%BB%A3%E7%A0%81%E5%8C%BA%E5%9F%9F%E5%B7%A6%E5%8F%B3%E4%B8%A4%E4%BE%A7%E9%83%BD%E6%9C%89%E5%81%9A%E4%BF%AE%E6%94%B9%E4%BD%86%E8%BF%99%E4%B8%AA%E4%BF%AE%E6%94%B9%E5%B9%B6%E4%B8%8D%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%86%B2%E7%AA%81%E6%AD%A4%E6%97%B6%E5%B0%B1%E4%BC%9A%E6%8F%90%E4%BE%9B%E4%B8%80%E9%94%AE%E5%90%88%E5%B9%B6%E6%9B%B4%E6%94%B9%E7%9A%84%E6%93%8D%E4%BD%9C","ariaLabel":"d 对于简单的冲突比如某一块代码区域左右两侧都有做修改但这个修改并不会导致冲突此时就会提供一键合并更改的操作 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"d. "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"对于简单的冲突(比如,某一块代码区域左右两侧都有做修改,但这个修改并不会导致冲突,此时就会提供一键合并更改的操作)"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01NjznPQ23CoPxApQM9_!!6000000007220-2-tps-1377-301.png","alt":"image.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"3-解决冲突完成点击应用更改保存最终结果","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#3-%E8%A7%A3%E5%86%B3%E5%86%B2%E7%AA%81%E5%AE%8C%E6%88%90%E7%82%B9%E5%87%BB%E5%BA%94%E7%94%A8%E6%9B%B4%E6%94%B9%E4%BF%9D%E5%AD%98%E6%9C%80%E7%BB%88%E7%BB%93%E6%9E%9C","ariaLabel":"3 解决冲突完成点击应用更改保存最终结果 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"3. 解决冲突完成点击"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"应用更改"}]},{"type":"text","value":"保存最终结果"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"4-源代码管理面板中点击code-classlanguage-textcode按钮存储更改内容","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#4-%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86%E9%9D%A2%E6%9D%BF%E4%B8%AD%E7%82%B9%E5%87%BBcode-classlanguage-textcode%E6%8C%89%E9%92%AE%E5%AD%98%E5%82%A8%E6%9B%B4%E6%94%B9%E5%86%85%E5%AE%B9","ariaLabel":"4 源代码管理面板中点击code classlanguage textcode按钮存储更改内容 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"4. 源代码管理面板中点击"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":"按钮存储更改内容"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01zop9PJ26BqQVmqPb0_!!6000000007624-0-tps-1500-610.jpg","alt":"截屏2023-02-03 17.34.54.png"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"5-最后提交代码即可","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#5-%E6%9C%80%E5%90%8E%E6%8F%90%E4%BA%A4%E4%BB%A3%E7%A0%81%E5%8D%B3%E5%8F%AF","ariaLabel":"5 最后提交代码即可 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"5. 最后提交代码即可"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互"},"parent":{"relativePath":"integrate/module-usage/3-way-merge-editor.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/module-usage/collaboration/page-data.json b/page-data/zh/docs/integrate/module-usage/collaboration/page-data.json
        index e0e98b9c..988abc05 100644
        --- a/page-data/zh/docs/integrate/module-usage/collaboration/page-data.json
        +++ b/page-data/zh/docs/integrate/module-usage/collaboration/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/module-usage/collaboration","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可以使用支持热插拔的模块"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-collaboration"}]},{"type":"text","value":"来为你的 IDE 的"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"编辑器部分"}]},{"type":"text","value":"实现实时多人协同编辑功能。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"video","properties":{"controls":true,"autoPlay":true,"loop":true,"style":"width:100%"},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"source","properties":{"src":"https://gw.alipayobjects.com/os/antfincdn/BhOIHyo%26E/co-editing-example.mp4","type":"video/mp4"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"平台支持","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%B9%B3%E5%8F%B0%E6%94%AF%E6%8C%81","ariaLabel":"平台支持 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"平台支持"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块目前只支持 Browser + Node 的 Cloud IDE 场景。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"该模块的使用很简单,只需要在你的 IDE 中的 Browser 端和 Node 端分别添加该模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Browser 端"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"CommonBrowserModules"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CollaborationModule"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  wsPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your-ws-path-here'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node 端"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"startServer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"CommonNodeModules"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CollaborationModule"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后,将用户信息给注册到 browser 侧的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":"即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  info"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" UserInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserInfo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// unique id"}]},{"type":"text","value":"\n  nickname"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// will be displayed on live cursor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对该模块的一个简单贡献如下所示。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CollaborationModuleContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  UserInfo\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-collaboration'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CollaborationModuleContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SampleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  info"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" UserInfo "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your id'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    nickname"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your name'"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前该模块的通信走 TCP 12345 端口。该模块通信的 URL 与你在 IDE 的里定义的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/5511c0c2f625f814100271c405f96861cde8643b/packages/core-browser/src/react-providers/config-provider.tsx#L81","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"wsPath"}]},{"type":"text","value":" 一致(除了端口为 12345)。请检查并配置你的服务器的防火墙设置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"限制","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%99%90%E5%88%B6","ariaLabel":"限制 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"限制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前协同编辑模块为"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"早期版本"}]},{"type":"text","value":"。并且,由于当前 OpenSumi 的设计考虑的是客户端(Browser)/服务端(Node)一对一的架构,该模块仍存有诸多限制。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"不支持 IDE 编辑器外的协同编辑功能(如终端)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"不支持处理工作区文件的外部修改(如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git pull"}]},{"type":"text","value":",用其他软件而非编辑器修改了文件内容)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"不支持纯前端与 Electron 平台"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"不支持 IDE 内跨文件的修改(如使用 vscode 插件进行变量重命名重构)"}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块"},"parent":{"relativePath":"integrate/module-usage/collaboration.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/module-usage/collaboration","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你可以使用支持热插拔的模块"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-collaboration"}]},{"type":"text","value":"来为你的 IDE 的"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"编辑器部分"}]},{"type":"text","value":"实现实时多人协同编辑功能。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"video","properties":{"controls":true,"autoPlay":true,"loop":true,"style":"width:100%"},"children":[{"type":"text","value":"\n    "},{"type":"element","tagName":"source","properties":{"src":"https://gw.alipayobjects.com/os/antfincdn/BhOIHyo%26E/co-editing-example.mp4","type":"video/mp4"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"平台支持","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%B9%B3%E5%8F%B0%E6%94%AF%E6%8C%81","ariaLabel":"平台支持 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"平台支持"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块目前只支持 Browser + Node 的 Cloud IDE 场景。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8","ariaLabel":"使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"该模块的使用很简单,只需要在你的 IDE 中的 Browser 端和 Node 端分别添加该模块。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Browser 端"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"CommonBrowserModules"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CollaborationModule"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  wsPath"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your-ws-path-here'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node 端"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"startServer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"CommonNodeModules"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CollaborationModule"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后,将用户信息给注册到 browser 侧的"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":"即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  info"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" UserInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"UserInfo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// unique id"}]},{"type":"text","value":"\n  nickname"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// will be displayed on live cursor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对该模块的一个简单贡献如下所示。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CollaborationModuleContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  UserInfo\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-collaboration'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CollaborationModuleContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SampleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CollaborationModuleContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  info"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" UserInfo "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your id'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    nickname"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'your name'"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前该模块的通信走 TCP 12345 端口。该模块通信的 URL 与你在 IDE 的里定义的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/5511c0c2f625f814100271c405f96861cde8643b/packages/core-browser/src/react-providers/config-provider.tsx#L81","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"wsPath"}]},{"type":"text","value":" 一致(除了端口为 12345)。请检查并配置你的服务器的防火墙设置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"限制","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%99%90%E5%88%B6","ariaLabel":"限制 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"限制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前协同编辑模块为"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"早期版本"}]},{"type":"text","value":"。并且,由于当前 OpenSumi 的设计考虑的是客户端(Browser)/服务端(Node)一对一的架构,该模块仍存有诸多限制。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"不支持 IDE 编辑器外的协同编辑功能(如终端)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"不支持处理工作区文件的外部修改(如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git pull"}]},{"type":"text","value":",用其他软件而非编辑器修改了文件内容)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"不支持纯前端与 Electron 平台"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"不支持 IDE 内跨文件的修改(如使用 vscode 插件进行变量重命名重构)"}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块"},"parent":{"relativePath":"integrate/module-usage/collaboration.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/module-usage/terminal-basic-usage/page-data.json b/page-data/zh/docs/integrate/module-usage/terminal-basic-usage/page-data.json
        index 7c7e1e8d..d5c02771 100644
        --- a/page-data/zh/docs/integrate/module-usage/terminal-basic-usage/page-data.json
        +++ b/page-data/zh/docs/integrate/module-usage/terminal-basic-usage/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/module-usage/terminal-basic-usage","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们在实现某些功能的时候需要用到终端模块,比如打开工作空间时帮用户自动安装 node_modules。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内部通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-terminal-next"}]},{"type":"text","value":" 封装了操作 Terminal 的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"现在我们将通过一些例子来带你了解如何使用 Terminal 相关能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"在终端输出-hello-world","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9C%A8%E7%BB%88%E7%AB%AF%E8%BE%93%E5%87%BA-hello-world","ariaLabel":"在终端输出 hello world permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"在终端输出 Hello World"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" 层,我们可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalController"}]},{"type":"text","value":" 来操作终端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"比如说我们想打开新的终端并在界面上显示出来,我们可以这样做:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITerminalController "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-terminal-next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" CommandContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TerminalContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"echoHelloWorld"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" client "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createTerminalWithWidget"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      config"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Something'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        executable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'bash'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        args"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'-c'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'echo Hello World'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onOutput"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"output "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"output"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onExit"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"exit "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Terminal exited with code "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"exit"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"code"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"term"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"writeln"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Terminal exited with code '"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" exit"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"code"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"term"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"writeln"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello from the other side.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这里使用的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createTerminalWithWidget"}]},{"type":"text","value":" 会创建一个终端并在界面上显示出来。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"并且整个 bash 会在执行完 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"echo Hello World"}]},{"type":"text","value":" 之后直接退出。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"在终端执行-npm-install","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9C%A8%E7%BB%88%E7%AB%AF%E6%89%A7%E8%A1%8C-npm-install","ariaLabel":"在终端执行 npm install permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"在终端执行 npm install"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"此外我们也可以启动一个真正的终端,然后通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.sendText"}]},{"type":"text","value":" 来发送命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITerminalController "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-terminal-next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  isWindows"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TerminalContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"installDeps"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 与第一个例子中的 `createTerminalWithWidget` 不同的是,这个命令不会主动在界面上显示终端,且比 `createTerminalWithWidget` 能配置的东西会少一些。"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" client "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createTerminal"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" config"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Install Dependencies'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showTerminalPanel"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"attached"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"promise"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" returnChar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" isWindows "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'\\r\\n'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'\\n'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'npm install'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" returnChar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sendText"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"command"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"总结","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%80%BB%E7%BB%93","ariaLabel":"总结 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"总结"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在上面的例子,我们演示了如何创建一个终端并在界面上显示出来,以及如何在终端中执行命令。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.onOutput"}]},{"type":"text","value":" 来监听终端的输出,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.onExit"}]},{"type":"text","value":" 来监听终端的退出。\n此外 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient"}]},{"type":"text","value":" 还有很多其他能力,比如说在终端中查找内容,获取用户选中的内容等等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.term"}]},{"type":"text","value":" 来获取到 xTerm 实例,然后通过 xTerm 的 API 来操作终端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以上代码可以在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-usage/browser","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-usage/browser"}]},{"type":"text","value":" 中找到。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端"},"parent":{"relativePath":"integrate/module-usage/terminal-basic-usage.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/module-usage/terminal-basic-usage","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们在实现某些功能的时候需要用到终端模块,比如打开工作空间时帮用户自动安装 node_modules。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内部通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-terminal-next"}]},{"type":"text","value":" 封装了操作 Terminal 的能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"现在我们将通过一些例子来带你了解如何使用 Terminal 相关能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"在终端输出-hello-world","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9C%A8%E7%BB%88%E7%AB%AF%E8%BE%93%E5%87%BA-hello-world","ariaLabel":"在终端输出 hello world permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"在终端输出 Hello World"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" 层,我们可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalController"}]},{"type":"text","value":" 来操作终端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"比如说我们想打开新的终端并在界面上显示出来,我们可以这样做:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITerminalController "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-terminal-next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" CommandContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TerminalContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"echoHelloWorld"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" client "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createTerminalWithWidget"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      config"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Something'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        executable"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'bash'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        args"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'-c'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'echo Hello World'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onOutput"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"output "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"console"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"log"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"output"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"onExit"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"exit "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"messageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"info"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"Terminal exited with code "}]},{"type":"element","tagName":"span","properties":{"className":["token","interpolation"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"${"}]},{"type":"text","value":"exit"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"code"},{"type":"element","tagName":"span","properties":{"className":["token","interpolation-punctuation","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"term"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"writeln"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Terminal exited with code '"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" exit"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"code"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"term"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"writeln"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello from the other side.'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"这里使用的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createTerminalWithWidget"}]},{"type":"text","value":" 会创建一个终端并在界面上显示出来。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"并且整个 bash 会在执行完 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"echo Hello World"}]},{"type":"text","value":" 之后直接退出。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"在终端执行-npm-install","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%9C%A8%E7%BB%88%E7%AB%AF%E6%89%A7%E8%A1%8C-npm-install","ariaLabel":"在终端执行 npm install permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"在终端执行 npm install"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"此外我们也可以启动一个真正的终端,然后通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.sendText"}]},{"type":"text","value":" 来发送命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" ITerminalController "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-terminal-next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  isWindows"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TerminalContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ITerminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" messageService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMessageService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"installDeps"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 与第一个例子中的 `createTerminalWithWidget` 不同的是,这个命令不会主动在界面上显示终端,且比 `createTerminalWithWidget` 能配置的东西会少一些。"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" client "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"createTerminal"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" config"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Install Dependencies'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"terminalController"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showTerminalPanel"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"attached"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"promise"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" returnChar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" isWindows "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'\\r\\n'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'\\n'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'npm install'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":" returnChar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" client"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"sendText"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"command"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"总结","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%80%BB%E7%BB%93","ariaLabel":"总结 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"总结"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在上面的例子,我们演示了如何创建一个终端并在界面上显示出来,以及如何在终端中执行命令。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.onOutput"}]},{"type":"text","value":" 来监听终端的输出,通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.onExit"}]},{"type":"text","value":" 来监听终端的退出。\n此外 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient"}]},{"type":"text","value":" 还有很多其他能力,比如说在终端中查找内容,获取用户选中的内容等等。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ITerminalClient.term"}]},{"type":"text","value":" 来获取到 xTerm 实例,然后通过 xTerm 的 API 来操作终端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"以上代码可以在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-usage/browser","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://github.com/opensumi/opensumi-module-samples/tree/main/modules/terminal-usage/browser"}]},{"type":"text","value":" 中找到。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端"},"parent":{"relativePath":"integrate/module-usage/terminal-basic-usage.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/overview/page-data.json b/page-data/zh/docs/integrate/overview/page-data.json
        index 4ede1c0e..eb022b51 100644
        --- a/page-data/zh/docs/integrate/overview/page-data.json
        +++ b/page-data/zh/docs/integrate/overview/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 框架旨在解决阿里经济体内部 IDE 产品研发的重复建设问题,满足 IDE 在更多垂直场景的定制能力,同时实现 Web 与本地客户端共用底层,让 IDE 研发从早期的“刀耕火种”时代向“机器化大生产”时代迈进。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你对 OpenSumi 框架的建设有兴趣,欢迎查看 "},{"type":"element","tagName":"a","properties":{"href":"../develop/how-to-contribute"},"children":[{"type":"text","value":"如何贡献代码"}]},{"type":"text","value":" 为 OpenSumi 框架建设出一份力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"整体架构","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84","ariaLabel":"整体架构 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"整体架构"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了保证框架可以同时在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Electron"}]},{"type":"text","value":" 环境下运行,OpenSumi 采用了一套前后端分离、通过一层抽象的通信层进行相互调用的项目结构。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web"}]},{"type":"text","value":" 上,我们使用 "},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebSocket"}]},{"type":"text","value":" 来作为通信的实现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Electron"}]},{"type":"text","value":" 上,我们则是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IPC"}]},{"type":"text","value":" 通信。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"每一个通信的连接对应前后端一个独立的 "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/dependence-injector"},"children":[{"type":"text","value":"DI (Dependence Inject)"}]},{"type":"text","value":" 容器,所以 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"OpenSumi 的后端实现是无状态的"}]},{"type":"text","value":",不同连接之间是严格隔离的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 内主要有三个核心进程:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"插件进程 (Extension Process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"后端进程 (Node Process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"前端进程 (Browser Process)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了保证插件的问题不会影响 IDE 的性能表现,插件能力上 OpenSumi 采用了跟 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code"}]},{"type":"text","value":" 类似的方案,通过独立的插件进程去启动插件,插件进程再通过后端进程与前端进程进行通信。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 的不同能力实现被拆分到了不同的模块内,这些模块通过 "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"贡献点机制 (Contribution Point)"}]},{"type":"text","value":"、"},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/dependence-injector"},"children":[{"type":"text","value":"DI 机制 (Dependence Inject)"}]},{"type":"text","value":" 互相之间有较弱的依赖关系,对于一些比较核心的基础模块,如主题服务、布局服务等,也会被其他模块直接依赖。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"因此,在集成开发过程中需要保证一些模块的引入顺序。"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"整体启动的生命周期如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01G6C1nf21GoZEzAlJk_!!6000000006958-2-tps-1564-874.png","alt":"生命周期"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"什么是模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%80%E4%B9%88%E6%98%AF%E6%A8%A1%E5%9D%97","ariaLabel":"什么是模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"什么是模块?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块是指 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" 中 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package"}]},{"type":"text","value":"  目录下的一个包,它可以发布到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":",并通过集成时安装依赖的方式引用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通常情况下,模块是一个独立的功能实现,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debug"}]},{"type":"text","value":"  模块基于 "},{"type":"element","tagName":"a","properties":{"href":"https://microsoft.github.io/debug-adapter-protocol/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"DAP"}]},{"type":"text","value":" 实现了一层通用的调试适配器,包括了调试器前端、会话管理等核心功能。并通过插件 API 的方式将其提供给插件调用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一个模块的基本结构如下"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── __tests__\n│   ├── browser\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── src\n│   ├── browser\n│   ├── common\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── webpack.config.js\n└── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" 中,你可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn run create [模块名]"}]},{"type":"text","value":" 的方式自动创建并关联引用关系。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块即可以包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 层代码,也可以包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" 层代码"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" 层代码一般用于处理视图相关的能力,以 OpenSumi 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":"  模块为例,搜索的界面就是由 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" 层进行实现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":" 层代码一般用于处理需要使用到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node.js"}]},{"type":"text","value":" 能力的逻辑,例如搜索面板中的全局搜索能力就需要 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":" 层进行实现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common"}]},{"type":"text","value":" 层一般用于存放一些公共的变量、工具方法、类型声明等。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"拓展-browser-层能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8B%93%E5%B1%95-browser-%E5%B1%82%E8%83%BD%E5%8A%9B","ariaLabel":"拓展 browser 层能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"拓展 Browser 层能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们通过以下的文件结构拓展 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 层能力,你可以通过在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"providers"}]},{"type":"text","value":" 中声明相关内容来拓展能力,详细案例可见我们的 "},{"type":"element","tagName":"a","properties":{"href":"../develop/sample/overview"},"children":[{"type":"text","value":"Todo List 案例"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Browser 模块入口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" HelloWorld "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./hello-world.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ModuleDemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"providers"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"拓展-node-层能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8B%93%E5%B1%95-node-%E5%B1%82%E8%83%BD%E5%8A%9B","ariaLabel":"拓展 node 层能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"拓展 Node 层能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们通过以下的文件结构拓展 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" 层能力,你可以通过在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"providers"}]},{"type":"text","value":" 中声明相关内容来拓展能力,详细案例可见我们的 "},{"type":"element","tagName":"a","properties":{"href":"../develop/sample/overview"},"children":[{"type":"text","value":"Todo List 案例"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node 模块入口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ModuleDemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"providers"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"什么是插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%80%E4%B9%88%E6%98%AF%E6%8F%92%E4%BB%B6","ariaLabel":"什么是插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"什么是插件?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件, 也可称为 Extension,是指当前 OpenSumi 框架下支持的,通过在特定位置安装插件文件,从而对 IDE 的界面、功能进行二次插件的一类程序文件,设计上兼容 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VSCode Extension API"}]},{"type":"text","value":",即对于使用 OpenSumi 进行开发的 IDE 产品天然兼容 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 的插件体系。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01gHphRQ26x18NyYeTz_!!6000000007727-2-tps-1156-800.png","alt":"插件"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件开发文档见:"},{"type":"element","tagName":"a","properties":{"href":"../extension/overview"},"children":[{"type":"text","value":"Extension API 概览"}]},{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何发布","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E5%8F%91%E5%B8%83","ariaLabel":"如何发布 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何发布"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于协议问题,OpenSumi 无法直接使用 VS Code 插件市场源,当前 OpenSumi 默认集成了 Eclipse 公司研发的 "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":" 服务,开发者可以直接使用,也可以基于 "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":" 建设自己的插件市场, 后续,我们也将建设自己的插件市场开发免费的插件托管服务给更多开发者使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考文档:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/eclipse/openvsx/wiki/Publishing-Extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Publishing Extensions"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍"},"parent":{"relativePath":"integrate/overview.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/overview","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 框架旨在解决阿里经济体内部 IDE 产品研发的重复建设问题,满足 IDE 在更多垂直场景的定制能力,同时实现 Web 与本地客户端共用底层,让 IDE 研发从早期的“刀耕火种”时代向“机器化大生产”时代迈进。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你对 OpenSumi 框架的建设有兴趣,欢迎查看 "},{"type":"element","tagName":"a","properties":{"href":"../develop/how-to-contribute"},"children":[{"type":"text","value":"如何贡献代码"}]},{"type":"text","value":" 为 OpenSumi 框架建设出一份力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"整体架构","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84","ariaLabel":"整体架构 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"整体架构"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了保证框架可以同时在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Electron"}]},{"type":"text","value":" 环境下运行,OpenSumi 采用了一套前后端分离、通过一层抽象的通信层进行相互调用的项目结构。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Web"}]},{"type":"text","value":" 上,我们使用 "},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebSocket"}]},{"type":"text","value":" 来作为通信的实现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Electron"}]},{"type":"text","value":" 上,我们则是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IPC"}]},{"type":"text","value":" 通信。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"每一个通信的连接对应前后端一个独立的 "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/dependence-injector"},"children":[{"type":"text","value":"DI (Dependence Inject)"}]},{"type":"text","value":" 容器,所以 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"OpenSumi 的后端实现是无状态的"}]},{"type":"text","value":",不同连接之间是严格隔离的。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 内主要有三个核心进程:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"插件进程 (Extension Process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"后端进程 (Node Process)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"前端进程 (Browser Process)"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了保证插件的问题不会影响 IDE 的性能表现,插件能力上 OpenSumi 采用了跟 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VS Code"}]},{"type":"text","value":" 类似的方案,通过独立的插件进程去启动插件,插件进程再通过后端进程与前端进程进行通信。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 的不同能力实现被拆分到了不同的模块内,这些模块通过 "},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"贡献点机制 (Contribution Point)"}]},{"type":"text","value":"、"},{"type":"element","tagName":"a","properties":{"href":"../develop/basic-design/dependence-injector"},"children":[{"type":"text","value":"DI 机制 (Dependence Inject)"}]},{"type":"text","value":" 互相之间有较弱的依赖关系,对于一些比较核心的基础模块,如主题服务、布局服务等,也会被其他模块直接依赖。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"因此,在集成开发过程中需要保证一些模块的引入顺序。"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"整体启动的生命周期如下图所示:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01G6C1nf21GoZEzAlJk_!!6000000006958-2-tps-1564-874.png","alt":"生命周期"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"什么是模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%80%E4%B9%88%E6%98%AF%E6%A8%A1%E5%9D%97","ariaLabel":"什么是模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"什么是模块?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块是指 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" 中 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package"}]},{"type":"text","value":"  目录下的一个包,它可以发布到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":",并通过集成时安装依赖的方式引用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通常情况下,模块是一个独立的功能实现,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debug"}]},{"type":"text","value":"  模块基于 "},{"type":"element","tagName":"a","properties":{"href":"https://microsoft.github.io/debug-adapter-protocol/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"DAP"}]},{"type":"text","value":" 实现了一层通用的调试适配器,包括了调试器前端、会话管理等核心功能。并通过插件 API 的方式将其提供给插件调用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一个模块的基本结构如下"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"\n├── __tests__\n│   ├── browser\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── src\n│   ├── browser\n│   ├── common\n│   └── "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":"\n└── webpack.config.js\n└── package.json\n└── README.md"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi"}]},{"type":"text","value":" 中,你可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"yarn run create [模块名]"}]},{"type":"text","value":" 的方式自动创建并关联引用关系。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块即可以包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 层代码,也可以包含 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" 层代码"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" 层代码一般用于处理视图相关的能力,以 OpenSumi 中的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search"}]},{"type":"text","value":"  模块为例,搜索的界面就是由 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"browser"}]},{"type":"text","value":" 层进行实现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":" 层代码一般用于处理需要使用到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node.js"}]},{"type":"text","value":" 能力的逻辑,例如搜索面板中的全局搜索能力就需要 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node"}]},{"type":"text","value":" 层进行实现。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"common"}]},{"type":"text","value":" 层一般用于存放一些公共的变量、工具方法、类型声明等。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"拓展-browser-层能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8B%93%E5%B1%95-browser-%E5%B1%82%E8%83%BD%E5%8A%9B","ariaLabel":"拓展 browser 层能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"拓展 Browser 层能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们通过以下的文件结构拓展 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Browser"}]},{"type":"text","value":" 层能力,你可以通过在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"providers"}]},{"type":"text","value":" 中声明相关内容来拓展能力,详细案例可见我们的 "},{"type":"element","tagName":"a","properties":{"href":"../develop/sample/overview"},"children":[{"type":"text","value":"Todo List 案例"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Browser 模块入口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" BrowserModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" HelloWorld "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./hello-world.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ModuleDemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"providers"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"拓展-node-层能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8B%93%E5%B1%95-node-%E5%B1%82%E8%83%BD%E5%8A%9B","ariaLabel":"拓展 node 层能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"拓展 Node 层能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们通过以下的文件结构拓展 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Node"}]},{"type":"text","value":" 层能力,你可以通过在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"providers"}]},{"type":"text","value":" 中声明相关内容来拓展能力,详细案例可见我们的 "},{"type":"element","tagName":"a","properties":{"href":"../develop/sample/overview"},"children":[{"type":"text","value":"Todo List 案例"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"javascript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Node 模块入口"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Injectable "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" NodeModule "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n@"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ModuleDemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"NodeModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","literal-property","property"]},"children":[{"type":"text","value":"providers"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Provider"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"什么是插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%80%E4%B9%88%E6%98%AF%E6%8F%92%E4%BB%B6","ariaLabel":"什么是插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"什么是插件?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件, 也可称为 Extension,是指当前 OpenSumi 框架下支持的,通过在特定位置安装插件文件,从而对 IDE 的界面、功能进行二次插件的一类程序文件,设计上兼容 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"VSCode Extension API"}]},{"type":"text","value":",即对于使用 OpenSumi 进行开发的 IDE 产品天然兼容 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"VSCode"}]},{"type":"text","value":" 的插件体系。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01gHphRQ26x18NyYeTz_!!6000000007727-2-tps-1156-800.png","alt":"插件"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件开发文档见:"},{"type":"element","tagName":"a","properties":{"href":"../extension/overview"},"children":[{"type":"text","value":"Extension API 概览"}]},{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何发布","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E5%8F%91%E5%B8%83","ariaLabel":"如何发布 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何发布"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"由于协议问题,OpenSumi 无法直接使用 VS Code 插件市场源,当前 OpenSumi 默认集成了 Eclipse 公司研发的 "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":" 服务,开发者可以直接使用,也可以基于 "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":" 建设自己的插件市场, 后续,我们也将建设自己的插件市场开发免费的插件托管服务给更多开发者使用。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"参考文档:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/eclipse/openvsx/wiki/Publishing-Extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Publishing Extensions"}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍"},"parent":{"relativePath":"integrate/overview.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/quick-start/electron/page-data.json b/page-data/zh/docs/integrate/quick-start/electron/page-data.json
        index d9107e9b..916e0d05 100644
        --- a/page-data/zh/docs/integrate/quick-start/electron/page-data.json
        +++ b/page-data/zh/docs/integrate/quick-start/electron/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/quick-start/electron","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内部集成了一个简易的 Electron 框架,旨在提供一个快速测试 OpenSumi 的桌面端环境。可以使用 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ide-electron"}]},{"type":"text","value":" 作为模板搭建自己的客户端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/releases","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Release"}]},{"type":"text","value":" 列表中获取相关安装包进行快速体验。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN013APO901bevPEe8Ydx_!!6000000003491-2-tps-2478-1624.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"兼容环境","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%BC%E5%AE%B9%E7%8E%AF%E5%A2%83","ariaLabel":"兼容环境 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"兼容环境"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron 11.4.3+"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"macOS & Windows 10+"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Node.js 14+"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"本地启动","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9C%AC%E5%9C%B0%E5%90%AF%E5%8A%A8","ariaLabel":"本地启动 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"本地启动"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"注意:由于编译过程中需要下载大量的包,并且部分包需要访问 GitHub 下载源码,请保持 GitHub 的访问畅通。很多 404 Not Found 的问题都是网络访问失败引起的。"}]},{"type":"text","value":"\n大陆用户如果是因为网络问题,导致不能正常安装依赖,可以先切换到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-cn"}]},{"type":"text","value":" 分支: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git checkout main-cn"}]},{"type":"text","value":",或者参考文章最后的附录配置 npm 镜像。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"依次运行下面的命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-electron.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-electron\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" i\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" build\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" rebuild-native -- --force-rebuild"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"true\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" download-extension "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 安装内置插件(可选)"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开发","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%8F%91","ariaLabel":"开发 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在项目根目录运行:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"启动:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"打包","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%89%93%E5%8C%85","ariaLabel":"打包 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"打包"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pnpm pack"}]},{"type":"text","value":" 即可将项目打包,打包后的安装包将输出在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"out"}]},{"type":"text","value":" 目录。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"npm-镜像配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#npm-%E9%95%9C%E5%83%8F%E9%85%8D%E7%BD%AE","ariaLabel":"npm 镜像配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"npm 镜像配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ide-electron/.npmrc"}]},{"type":"text","value":",添加下面的 npm 镜像配置,可以解决安装依赖失败的问题:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"config"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-config"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-config"]},"children":[{"type":"text","value":"registry=https://registry.npmmirror.com/\ndisturl=https://npmmirror.com/mirrors/node\nchromedriver-cdnurl=https://npmmirror.com/mirrors/chromedriver\ncouchbase-binary-host-mirror=https://npmmirror.com/mirrors/couchbase/v{version}\ndebug-binary-host-mirror=https://npmmirror.com/mirrors/node-inspector\nflow-bin-binary-host-mirror=https://npmmirror.com/mirrors/flow/v{version}\nfse-binary-host-mirror=https://npmmirror.com/mirrors/fsevents\nfuse-bindings-binary-host-mirror=https://npmmirror.com/mirrors/fuse-bindings/v{version}\ngit4win-mirror=https://npmmirror.com/mirrors/git-for-windows\ngl-binary-host-mirror=https://npmmirror.com/mirrors/gl/v{version}\ngrpc-node-binary-host-mirror=https://npmmirror.com/mirrors\nhackrf-binary-host-mirror=https://npmmirror.com/mirrors/hackrf/v{version}\nleveldown-binary-host-mirror=https://npmmirror.com/mirrors/leveldown/v{version}\nleveldown-hyper-binary-host-mirror=https://npmmirror.com/mirrors/leveldown-hyper/v{version}\nmknod-binary-host-mirror=https://npmmirror.com/mirrors/mknod/v{version}\nnode-sqlite3-binary-host-mirror=https://npmmirror.com/mirrors\nnode-tk5-binary-host-mirror=https://npmmirror.com/mirrors/node-tk5/v{version}\nnodegit-binary-host-mirror=https://npmmirror.com/mirrors/nodegit/v{version}/\noperadriver-cdnurl=https://npmmirror.com/mirrors/operadriver\nphantomjs-cdnurl=https://npmmirror.com/mirrors/phantomjs\nprofiler-binary-host-mirror=https://npmmirror.com/mirrors/node-inspector/\npython-mirror=https://npmmirror.com/mirrors/python\nrabin-binary-host-mirror=https://npmmirror.com/mirrors/rabin/v{version}\nsass-binary-site=https://npmmirror.com/mirrors/node-sass\nsodium-prebuilt-binary-host-mirror=https://npmmirror.com/mirrors/sodium-prebuilt/v{version}\nsqlite3-binary-site=https://npmmirror.com/mirrors/sqlite3\nutf-8-validate-binary-host-mirror=https://npmmirror.com/mirrors/utf-8-validate/v{version}\nutp-native-binary-host-mirror=https://npmmirror.com/mirrors/utp-native/v{version}\nzmq-prebuilt-binary-host-mirror=https://npmmirror.com/mirrors/zmq-prebuilt/v{version}\nbin-mirrors-prefix=https://npmmirror.com/mirrors\ncanvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas\nelectron-mirror=https://npmmirror.com/mirrors/electron/\nelectron_custom_dir={{ version }}\nelectron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/"}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)"},"parent":{"relativePath":"integrate/quick-start/electron.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/quick-start/electron","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内部集成了一个简易的 Electron 框架,旨在提供一个快速测试 OpenSumi 的桌面端环境。可以使用 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ide-electron"}]},{"type":"text","value":" 作为模板搭建自己的客户端。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/releases","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Release"}]},{"type":"text","value":" 列表中获取相关安装包进行快速体验。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN013APO901bevPEe8Ydx_!!6000000003491-2-tps-2478-1624.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"兼容环境","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%BC%E5%AE%B9%E7%8E%AF%E5%A2%83","ariaLabel":"兼容环境 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"兼容环境"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Electron 11.4.3+"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"macOS & Windows 10+"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Node.js 14+"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"本地启动","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9C%AC%E5%9C%B0%E5%90%AF%E5%8A%A8","ariaLabel":"本地启动 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"本地启动"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"注意:由于编译过程中需要下载大量的包,并且部分包需要访问 GitHub 下载源码,请保持 GitHub 的访问畅通。很多 404 Not Found 的问题都是网络访问失败引起的。"}]},{"type":"text","value":"\n大陆用户如果是因为网络问题,导致不能正常安装依赖,可以先切换到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"main-cn"}]},{"type":"text","value":" 分支: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"git checkout main-cn"}]},{"type":"text","value":",或者参考文章最后的附录配置 npm 镜像。"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"依次运行下面的命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-electron.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-electron\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" i\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" build\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" rebuild-native -- --force-rebuild"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":"true\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" download-extension "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 安装内置插件(可选)"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"开发","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BC%80%E5%8F%91","ariaLabel":"开发 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"开发"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在项目根目录运行:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"watch"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"启动:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"pnpm"}]},{"type":"text","value":" start"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"打包","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%89%93%E5%8C%85","ariaLabel":"打包 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"打包"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"运行 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pnpm pack"}]},{"type":"text","value":" 即可将项目打包,打包后的安装包将输出在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"out"}]},{"type":"text","value":" 目录。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"npm-镜像配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#npm-%E9%95%9C%E5%83%8F%E9%85%8D%E7%BD%AE","ariaLabel":"npm 镜像配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"npm 镜像配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ide-electron/.npmrc"}]},{"type":"text","value":",添加下面的 npm 镜像配置,可以解决安装依赖失败的问题:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"config"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-config"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-config"]},"children":[{"type":"text","value":"registry=https://registry.npmmirror.com/\ndisturl=https://npmmirror.com/mirrors/node\nchromedriver-cdnurl=https://npmmirror.com/mirrors/chromedriver\ncouchbase-binary-host-mirror=https://npmmirror.com/mirrors/couchbase/v{version}\ndebug-binary-host-mirror=https://npmmirror.com/mirrors/node-inspector\nflow-bin-binary-host-mirror=https://npmmirror.com/mirrors/flow/v{version}\nfse-binary-host-mirror=https://npmmirror.com/mirrors/fsevents\nfuse-bindings-binary-host-mirror=https://npmmirror.com/mirrors/fuse-bindings/v{version}\ngit4win-mirror=https://npmmirror.com/mirrors/git-for-windows\ngl-binary-host-mirror=https://npmmirror.com/mirrors/gl/v{version}\ngrpc-node-binary-host-mirror=https://npmmirror.com/mirrors\nhackrf-binary-host-mirror=https://npmmirror.com/mirrors/hackrf/v{version}\nleveldown-binary-host-mirror=https://npmmirror.com/mirrors/leveldown/v{version}\nleveldown-hyper-binary-host-mirror=https://npmmirror.com/mirrors/leveldown-hyper/v{version}\nmknod-binary-host-mirror=https://npmmirror.com/mirrors/mknod/v{version}\nnode-sqlite3-binary-host-mirror=https://npmmirror.com/mirrors\nnode-tk5-binary-host-mirror=https://npmmirror.com/mirrors/node-tk5/v{version}\nnodegit-binary-host-mirror=https://npmmirror.com/mirrors/nodegit/v{version}/\noperadriver-cdnurl=https://npmmirror.com/mirrors/operadriver\nphantomjs-cdnurl=https://npmmirror.com/mirrors/phantomjs\nprofiler-binary-host-mirror=https://npmmirror.com/mirrors/node-inspector/\npython-mirror=https://npmmirror.com/mirrors/python\nrabin-binary-host-mirror=https://npmmirror.com/mirrors/rabin/v{version}\nsass-binary-site=https://npmmirror.com/mirrors/node-sass\nsodium-prebuilt-binary-host-mirror=https://npmmirror.com/mirrors/sodium-prebuilt/v{version}\nsqlite3-binary-site=https://npmmirror.com/mirrors/sqlite3\nutf-8-validate-binary-host-mirror=https://npmmirror.com/mirrors/utf-8-validate/v{version}\nutp-native-binary-host-mirror=https://npmmirror.com/mirrors/utp-native/v{version}\nzmq-prebuilt-binary-host-mirror=https://npmmirror.com/mirrors/zmq-prebuilt/v{version}\nbin-mirrors-prefix=https://npmmirror.com/mirrors\ncanvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas\nelectron-mirror=https://npmmirror.com/mirrors/electron/\nelectron_custom_dir={{ version }}\nelectron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/"}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)"},"parent":{"relativePath":"integrate/quick-start/electron.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/quick-start/lite/page-data.json b/page-data/zh/docs/integrate/quick-start/lite/page-data.json
        index e6ad0168..90ee810f 100644
        --- a/page-data/zh/docs/integrate/quick-start/lite/page-data.json
        +++ b/page-data/zh/docs/integrate/quick-start/lite/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/quick-start/lite","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了纯前端版本的接入能力,可以让你脱离 node 的环境,在纯浏览器环境下,通过简单的 B/S 架构提供相对完整的 IDE 能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在开始运行前,请先保证本地的环境已经安装 Node.js 10.15.x 或以上版本。同时 OpenSumi 依赖一些 Node.js Addon,为了确保这些 Addon 能够被正常编译运行,建议参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" 中的安装指南来搭建本地环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,你也可以直接访问我们的"},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.github.io/ide-startup-lite/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"预览页面"}]},{"type":"text","value":"体验最新运行效果,支持分支或者 tag 地址 如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://opensumi.github.io/ide-startup-lite/#https://github.com/opensumi/core/tree/v2.16.0"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"快速开始","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B","ariaLabel":"快速开始 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"快速开始"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"克隆项目 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/ide-startup-lite"}]},{"type":"text","value":",进入目录执行以下命令启动 IDE:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"shell"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-shell"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-shell"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone https://github.com/opensumi/ide-startup-lite.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup-lite\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":"                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 安装依赖"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" run compile:ext-worker   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 编译 webworker 插件环境"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" run start                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 启动"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" 进行预览或开发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://gw.alipayobjects.com/mdn/rms_3b03a3/afts/img/A*ZXeHTJFmx3AAAAAAAAAAAAAAARQnAQ","alt":"截图"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"距离一个完整可用的纯前端版 IDE 还需要以下实现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"文件服务配置 *(必选)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"插件配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"语言能力配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"搜索服务配置"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"文件服务配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AE","ariaLabel":"文件服务配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"文件服务配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"纯前端版本使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserFsProvider"}]},{"type":"text","value":" 替换 OpenSumi 内的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DiskFileSystemProvider"}]},{"type":"text","value":", 改动在于由原来的本地文件服务改成 http 接口服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件位置:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/file-provider/browser-fs-provider.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"文件服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1","ariaLabel":"文件服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"文件服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与容器版、electron 版这种全功能 IDE 不同的是,纯前端版本 IDE 一般都服务于一个垂直、特定的场景,比如代码查看、codereview 等等,对应的底层能力是服务化的。且由于浏览器本身没有文件系统,因此需要一个外部的数据源来提供和维护文件信息。在纯前端版本,我们需要开发者实现以下两个方法来支持基础的代码查看能力:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件位置:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/file-provider/http-file-service.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"readDir(uri: Uri): Promise>"}]},{"type":"text","value":":返回目录结构信息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"readFile(uri: Uri, encoding?: string): Promise"}]},{"type":"text","value":":返回文件内容"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现上述两个方法即可支持只读模式下的 IDE 能力。如果需要支持代码编辑能力,还需要实现下面三个方法:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"updateFile(uri: Uri, content: string, options: { encoding?: string; newUri?: Uri; }): Promise"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createFile(uri: Uri, content: string, options: { encoding?: string; }): Promise"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"deleteFile(uri: Uri, options: { recursive?: boolean }): Promise"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"代码修改后,会先调用对应方法同步到集成方的服务端,之后浏览器端也会在内存中缓存一份新的代码,刷新后失效。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"语法高亮及代码提示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE%E5%8F%8A%E4%BB%A3%E7%A0%81%E6%8F%90%E7%A4%BA","ariaLabel":"语法高亮及代码提示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"语法高亮及代码提示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"语法高亮","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE","ariaLabel":"语法高亮 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"语法高亮"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"出于性能考虑,纯前端版本的静态语法高亮能力默认不通过插件来注册,我们将常见的语法封装到了一个统一的 npm 包内,直接声明想要支持的语法即可:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件位置:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/grammar/index.contribution.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" languages "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  ‘html’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘css’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘javascript’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘less’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘markdown’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘typescript’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注:我们提供了直接 Require 和动态 import 两种方式来引入语法声明文件,前者会使得 bundleSize 变大,后者部署成本会更高,集成时可自行选择"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"单文件语法服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8D%95%E6%96%87%E4%BB%B6%E8%AF%AD%E6%B3%95%E6%9C%8D%E5%8A%A1","ariaLabel":"单文件语法服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"单文件语法服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 基于纯前端插件(worker 版)能力,提供了常见语法的基础提示。由于没有文件服务,worker 版本语法提示插件只支持单文件的代码提示,不支持跨文件分析,对于纯前端的轻量编辑场景而言,基本上是够用的。目前可选的语法提示插件有:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" languageExtensions "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.typescript-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.2'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.markdown-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.2'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.html-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.json-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.css-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"将语法提示插件直接加入插件列表即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"lsif-语法服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#lsif-%E8%AF%AD%E6%B3%95%E6%9C%8D%E5%8A%A1","ariaLabel":"lsif 语法服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Lsif 语法服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于代码查看、Code review 这一类纯浏览场景,基于离线索引分析的 "},{"type":"element","tagName":"a","properties":{"href":"https://microsoft.github.io/language-server-protocol/specifications/lsif/0.6.0/specification/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"LSIF 方案"}]},{"type":"text","value":" 可以很好的支持跨文件 Hover 提示,代码跳转的需求,且不需要浏览器端承担任何额外的分析开销。OpenSumi 纯前端版集成了 lsif client,只需要简单的对接即可接入 lsif 服务:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件位置:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/language-service/lsif-service/lsif-client.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ILsifPayload"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  repository"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  commit"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  path"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  character"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  line"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ILsifClient"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"exists"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"repo"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" commit"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hover"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Hover"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"definition"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Location"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"reference"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Location"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"搜索能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%90%9C%E7%B4%A2%E8%83%BD%E5%8A%9B","ariaLabel":"搜索能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"搜索能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"搜索功能属于可选实现,默认不开启搜索功能。实现搜索能力的核心在于实现 file-search 和 search 模块的后端部分。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"文件搜索","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%87%E4%BB%B6%E6%90%9C%E7%B4%A2","ariaLabel":"文件搜索 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"文件搜索"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"要实现文件搜索功能(通过 cmd+p 触发),需要实现以下方法:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IFileSearchService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * finds files by a given search pattern.\n   * @return the matching paths, relative to the given `options.rootUri`.\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"find"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    searchPattern"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IFileSearchService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    cancellationToken"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CancellationToken\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现后替换默认的 mock-file-seach.ts 即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"文件内容搜索","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9%E6%90%9C%E7%B4%A2","ariaLabel":"文件内容搜索 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"文件内容搜索"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件内容搜索功能的实现需要改造 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search.service.ts"}]},{"type":"text","value":",暂不提供官方实现。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)"},"parent":{"relativePath":"integrate/quick-start/lite.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/quick-start/lite","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了纯前端版本的接入能力,可以让你脱离 node 的环境,在纯浏览器环境下,通过简单的 B/S 架构提供相对完整的 IDE 能力。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在开始运行前,请先保证本地的环境已经安装 Node.js 10.15.x 或以上版本。同时 OpenSumi 依赖一些 Node.js Addon,为了确保这些 Addon 能够被正常编译运行,建议参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" 中的安装指南来搭建本地环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,你也可以直接访问我们的"},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.github.io/ide-startup-lite/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"预览页面"}]},{"type":"text","value":"体验最新运行效果,支持分支或者 tag 地址 如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"https://opensumi.github.io/ide-startup-lite/#https://github.com/opensumi/core/tree/v2.16.0"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"快速开始","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B","ariaLabel":"快速开始 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"快速开始"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"克隆项目 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/ide-startup-lite"}]},{"type":"text","value":",进入目录执行以下命令启动 IDE:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"shell"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-shell"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-shell"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone https://github.com/opensumi/ide-startup-lite.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup-lite\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"install"}]},{"type":"text","value":"                  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 安装依赖"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" run compile:ext-worker   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 编译 webworker 插件环境"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"npm"}]},{"type":"text","value":" run start                "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 启动"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" 进行预览或开发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://gw.alipayobjects.com/mdn/rms_3b03a3/afts/img/A*ZXeHTJFmx3AAAAAAAAAAAAAAARQnAQ","alt":"截图"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"距离一个完整可用的纯前端版 IDE 还需要以下实现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"文件服务配置 *(必选)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"插件配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"语言能力配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"搜索服务配置"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"文件服务配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AE","ariaLabel":"文件服务配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"文件服务配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"纯前端版本使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"BrowserFsProvider"}]},{"type":"text","value":" 替换 OpenSumi 内的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DiskFileSystemProvider"}]},{"type":"text","value":", 改动在于由原来的本地文件服务改成 http 接口服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件位置:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/file-provider/browser-fs-provider.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"文件服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1","ariaLabel":"文件服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"文件服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与容器版、electron 版这种全功能 IDE 不同的是,纯前端版本 IDE 一般都服务于一个垂直、特定的场景,比如代码查看、codereview 等等,对应的底层能力是服务化的。且由于浏览器本身没有文件系统,因此需要一个外部的数据源来提供和维护文件信息。在纯前端版本,我们需要开发者实现以下两个方法来支持基础的代码查看能力:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件位置:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/file-provider/http-file-service.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"readDir(uri: Uri): Promise>"}]},{"type":"text","value":":返回目录结构信息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"readFile(uri: Uri, encoding?: string): Promise"}]},{"type":"text","value":":返回文件内容"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现上述两个方法即可支持只读模式下的 IDE 能力。如果需要支持代码编辑能力,还需要实现下面三个方法:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"updateFile(uri: Uri, content: string, options: { encoding?: string; newUri?: Uri; }): Promise"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"createFile(uri: Uri, content: string, options: { encoding?: string; }): Promise"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"deleteFile(uri: Uri, options: { recursive?: boolean }): Promise"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"代码修改后,会先调用对应方法同步到集成方的服务端,之后浏览器端也会在内存中缓存一份新的代码,刷新后失效。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"语法高亮及代码提示","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE%E5%8F%8A%E4%BB%A3%E7%A0%81%E6%8F%90%E7%A4%BA","ariaLabel":"语法高亮及代码提示 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"语法高亮及代码提示"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"语法高亮","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE","ariaLabel":"语法高亮 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"语法高亮"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"出于性能考虑,纯前端版本的静态语法高亮能力默认不通过插件来注册,我们将常见的语法封装到了一个统一的 npm 包内,直接声明想要支持的语法即可:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件位置:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/grammar/index.contribution.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" languages "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  ‘html’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘css’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘javascript’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘less’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘markdown’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  ‘typescript’"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注:我们提供了直接 Require 和动态 import 两种方式来引入语法声明文件,前者会使得 bundleSize 变大,后者部署成本会更高,集成时可自行选择"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"单文件语法服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8D%95%E6%96%87%E4%BB%B6%E8%AF%AD%E6%B3%95%E6%9C%8D%E5%8A%A1","ariaLabel":"单文件语法服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"单文件语法服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 基于纯前端插件(worker 版)能力,提供了常见语法的基础提示。由于没有文件服务,worker 版本语法提示插件只支持单文件的代码提示,不支持跨文件分析,对于纯前端的轻量编辑场景而言,基本上是够用的。目前可选的语法提示插件有:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" languageExtensions "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.typescript-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.2'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.markdown-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.2'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.html-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.json-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'alex.css-language-features-worker'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" version"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1.0.0-beta.1'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"将语法提示插件直接加入插件列表即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"lsif-语法服务","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#lsif-%E8%AF%AD%E6%B3%95%E6%9C%8D%E5%8A%A1","ariaLabel":"lsif 语法服务 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Lsif 语法服务"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于代码查看、Code review 这一类纯浏览场景,基于离线索引分析的 "},{"type":"element","tagName":"a","properties":{"href":"https://microsoft.github.io/language-server-protocol/specifications/lsif/0.6.0/specification/","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"LSIF 方案"}]},{"type":"text","value":" 可以很好的支持跨文件 Hover 提示,代码跳转的需求,且不需要浏览器端承担任何额外的分析开销。OpenSumi 纯前端版集成了 lsif client,只需要简单的对接即可接入 lsif 服务:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件位置:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"web-lite/language-service/lsif-service/lsif-client.ts"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ILsifPayload"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  repository"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  commit"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  path"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  character"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  line"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"number"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ILsifClient"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"exists"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"repo"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" commit"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"boolean"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"hover"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Hover"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"definition"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Location"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"reference"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"params"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ILsifPayload"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Location"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"搜索能力","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%90%9C%E7%B4%A2%E8%83%BD%E5%8A%9B","ariaLabel":"搜索能力 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"搜索能力"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"搜索功能属于可选实现,默认不开启搜索功能。实现搜索能力的核心在于实现 file-search 和 search 模块的后端部分。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"文件搜索","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%87%E4%BB%B6%E6%90%9C%E7%B4%A2","ariaLabel":"文件搜索 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"文件搜索"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"要实现文件搜索功能(通过 cmd+p 触发),需要实现以下方法:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IFileSearchService"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n   * finds files by a given search pattern.\n   * @return the matching paths, relative to the given `options.rootUri`.\n   */"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"find"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    searchPattern"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IFileSearchService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"Options"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    cancellationToken"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CancellationToken\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"实现后替换默认的 mock-file-seach.ts 即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"文件内容搜索","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9%E6%90%9C%E7%B4%A2","ariaLabel":"文件内容搜索 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"文件内容搜索"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"文件内容搜索功能的实现需要改造 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"search.service.ts"}]},{"type":"text","value":",暂不提供官方实现。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)"},"parent":{"relativePath":"integrate/quick-start/lite.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/quick-start/web/page-data.json b/page-data/zh/docs/integrate/quick-start/web/page-data.json
        index 038ff77e..7dcdc81a 100644
        --- a/page-data/zh/docs/integrate/quick-start/web/page-data.json
        +++ b/page-data/zh/docs/integrate/quick-start/web/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/quick-start/web","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 基于 Node.js "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"12.x +"}]},{"type":"text","value":" 版本开发,需要确保你本地已经安装上正确的 Node.js 版本。同时 OpenSumi 依赖一些 Node.js Addon,为了确保这些 Addon 能够被正常编译运行,建议参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" 中的安装指南来搭建本地环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01uIRRRl1wmLkN9geV3_!!6000000006350-2-tps-2844-1830.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"本地启动","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9C%AC%E5%9C%B0%E5%90%AF%E5%8A%A8","ariaLabel":"本地启动 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"本地启动"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"注意:由于编译过程中需要下载大量的包,并且部分包需要访问 GitHub 下载源码,请保持 GitHub 的访问畅通。很多 404 Not Found 的问题都是网络访问失败引起的。"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"依次运行下面的命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-startup.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\t\t\t\t\t   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 安装依赖"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 并行启动前端和后端"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" 进行预览或开发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用-docker-镜像","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-docker-%E9%95%9C%E5%83%8F","ariaLabel":"使用 docker 镜像 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 Docker 镜像"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 拉取镜像"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"docker"}]},{"type":"text","value":" pull ghcr.io/opensumi/opensumi-web:latest\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 运行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"docker"}]},{"type":"text","value":" run "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--rm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-d"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-p"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8080"}]},{"type":"text","value":":8000/tcp ghcr.io/opensumi/opensumi-web:latest"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" 进行预览或开发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"启动参数","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%AF%E5%8A%A8%E5%8F%82%E6%95%B0","ariaLabel":"启动参数 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"启动参数"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Startup 中集成代码比较简单,大体上是分别实例化了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"text","value":"  和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ServerApp"}]},{"type":"text","value":" ,传入相应的参数并启动。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"详细启动参数可查看 "},{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"自定义配置"}]},{"type":"text","value":" 文档。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"定制-ide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9A%E5%88%B6-ide","ariaLabel":"定制 ide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"定制 IDE"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 支持通过模块的方式对界面主题、内置命令、菜单等基础能力进行定制,更多详细的定制内容可以查看:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-command"},"children":[{"type":"text","value":"自定义命令"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"自定义配置"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-view"},"children":[{"type":"text","value":"自定义视图"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)"},"parent":{"relativePath":"integrate/quick-start/web.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/quick-start/web","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 基于 Node.js "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"12.x +"}]},{"type":"text","value":" 版本开发,需要确保你本地已经安装上正确的 Node.js 版本。同时 OpenSumi 依赖一些 Node.js Addon,为了确保这些 Addon 能够被正常编译运行,建议参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/nodejs/node-gyp#installation","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node-gyp"}]},{"type":"text","value":" 中的安装指南来搭建本地环境。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01uIRRRl1wmLkN9geV3_!!6000000006350-2-tps-2844-1830.png","alt":"preview"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"本地启动","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9C%AC%E5%9C%B0%E5%90%AF%E5%8A%A8","ariaLabel":"本地启动 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"本地启动"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"注意:由于编译过程中需要下载大量的包,并且部分包需要访问 GitHub 下载源码,请保持 GitHub 的访问畅通。很多 404 Not Found 的问题都是网络访问失败引起的。"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"依次运行下面的命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"text","value":"$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"git"}]},{"type":"text","value":" clone git@github.com:opensumi/ide-startup.git\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","builtin","class-name"]},"children":[{"type":"text","value":"cd"}]},{"type":"text","value":" ide-startup\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":"\t\t\t\t\t   "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 安装依赖"}]},{"type":"text","value":"\n$ "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start\t\t       "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 并行启动前端和后端"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" 进行预览或开发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用-docker-镜像","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-docker-%E9%95%9C%E5%83%8F","ariaLabel":"使用 docker 镜像 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 Docker 镜像"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 拉取镜像"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"docker"}]},{"type":"text","value":" pull ghcr.io/opensumi/opensumi-web:latest\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# 运行"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"docker"}]},{"type":"text","value":" run "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"--rm"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-d"}]},{"type":"text","value":"  "},{"type":"element","tagName":"span","properties":{"className":["token","parameter","variable"]},"children":[{"type":"text","value":"-p"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8080"}]},{"type":"text","value":":8000/tcp ghcr.io/opensumi/opensumi-web:latest"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器打开 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8080"}]},{"type":"text","value":" 进行预览或开发。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"启动参数","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%AF%E5%8A%A8%E5%8F%82%E6%95%B0","ariaLabel":"启动参数 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"启动参数"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Startup 中集成代码比较简单,大体上是分别实例化了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"text","value":"  和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ServerApp"}]},{"type":"text","value":" ,传入相应的参数并启动。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"详细启动参数可查看 "},{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"自定义配置"}]},{"type":"text","value":" 文档。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"定制-ide","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9A%E5%88%B6-ide","ariaLabel":"定制 ide permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"定制 IDE"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 支持通过模块的方式对界面主题、内置命令、菜单等基础能力进行定制,更多详细的定制内容可以查看:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-command"},"children":[{"type":"text","value":"自定义命令"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-config"},"children":[{"type":"text","value":"自定义配置"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"../universal-integrate-case/custom-view"},"children":[{"type":"text","value":"自定义视图"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)"},"parent":{"relativePath":"integrate/quick-start/web.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/custom-command/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/custom-command/page-data.json
        index e3502657..7d87a4e7 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/custom-command/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/custom-command/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-command","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用命令的场景主要有下面两种:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6","ariaLabel":"插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件中可以通过下面例子的用法使用 OpenSumi 中的命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Uri "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// OpenSumi 针对插件进程的命令调用进行了特殊处理,真实执行时会将 `Uri` 转化为 `URI`"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" uri "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"file"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/some/path/to/folder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" success "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97","ariaLabel":"模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块中可以通过下面例子的用法使用 OpenSumi 中的命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/common-di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" commandService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" uri "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/some/path/to/folder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"react-组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#react-%E7%BB%84%E4%BB%B6","ariaLabel":"react 组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"React 组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 React 组件中你可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" 来获取到命令服务:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" useInjectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"DemoView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" commandService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"openFolder"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    commandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"OPEN_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" newWindow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"className"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"empty_button"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"openFolder"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'file.empty.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"内置命令","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%86%85%E7%BD%AE%E5%91%BD%E4%BB%A4","ariaLabel":"内置命令 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"内置命令"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 框架中,内置了许多基础命令,在需要实现时,你可以先到对应模块查找一下对应实现,避免重复劳动。常用的一些内置命令如下:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"命令"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"功能"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"revealInExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"在资源管理器界面定位文件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置 Context 变量值"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"key"}]},{"type":"text","value":":键, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"value"}]},{"type":"text","value":":值"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前激活的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.revertAndCloseActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"恢复当前文件内容同时关闭激活的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"向右拆分当前编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"向下拆分当前编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.newUntitledFile"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"新建临时的编辑器文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeAllEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭所有编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeOtherEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭其他编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.save"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"保存当前文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件并向右拆分"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorOrthogonal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件并向下拆分"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateLeft"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到左侧编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateUp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到顶部编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到右侧编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到底部编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateEditorGroups"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换编辑器组"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.nextEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换至下个文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.previousEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换至上个文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openEditorAtIndex"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"通过下标位置打开编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.revert"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"恢复当前激活的文件内容"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.clear"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"清理当前激活的终端窗口内容"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.toggleTerminal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开/关闭 终端窗口"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.files.action.focusFilesExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开激活的编辑器组"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.open"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件(仅在 Electron 下可用)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.openFolder"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件夹(仅在 Electron 下可用)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.reloadWindow (reload_window)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"重载窗口"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"复制文件绝对路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyRelativeFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"复制文件相对路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openSettings"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开设置面板"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateBack"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"前往上一个编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateForward"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"前往下一个编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.saveAll"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"保存全部文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步入"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOut"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步出"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOver"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步进"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.continue"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试继续"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.run (workbench.action.debug.start)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试运行"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.pause"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试暂停"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.restart"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试重启"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stop"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试终止"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.showAllSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"展示所有符号"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册自定义命令","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E5%91%BD%E4%BB%A4","ariaLabel":"注册自定义命令 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册自定义命令"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册自定义命令的方式同样也存在两种方式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"通过插件注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87%E6%8F%92%E4%BB%B6%E6%B3%A8%E5%86%8C","ariaLabel":"通过插件注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过插件注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件注册主要依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"commands"}]},{"type":"text","value":" 贡献点,详细文档可见:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.commands","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"contributes.commands"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 声明自定义命令的简单例子如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"contributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"commands\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"extension.sayHello\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello World\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"category\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"light\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"path/to/light/icon.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dark\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"path/to/dark/icon.svg\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"声明的好处是能够让该命令“显式”的存在于框架中,即通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"⇧⌘P"}]},{"type":"text","value":" 打开快速导航面板,或是在菜单中都能找到其位置,没有声明直接进行注册的命令将不会出现在上述面板中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumi 自有插件 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ExtensionContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"subscriptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'extension.sayHello'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello World'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"通过模块注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87%E6%A8%A1%E5%9D%97%E6%B3%A8%E5%86%8C","ariaLabel":"通过模块注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过模块注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在模块中,我们通常采用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" 进行注册,详细可见文档:"},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point#%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%86%8C"},"children":[{"type":"text","value":"命令注册"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-command.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-command","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"使用命令的场景主要有下面两种:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6","ariaLabel":"插件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件中可以通过下面例子的用法使用 OpenSumi 中的命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Uri "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// OpenSumi 针对插件进程的命令调用进行了特殊处理,真实执行时会将 `Uri` 转化为 `URI`"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" uri "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" Uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"file"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/some/path/to/folder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" success "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A8%A1%E5%9D%97","ariaLabel":"模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"模块中可以通过下面例子的用法使用 OpenSumi 中的命令:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Injectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" Autowired "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/common-di'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"private"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" commandService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"run"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" uri "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"URI"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'/some/path/to/folder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"await"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'vscode.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" uri"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"react-组件","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#react-%E7%BB%84%E4%BB%B6","ariaLabel":"react 组件 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"React 组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 React 组件中你可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"text","value":" 来获取到命令服务:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" React "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'react'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" useInjectable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" localize"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"DemoView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" commandService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandService "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"useInjectable"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"CommandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"openFolder"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    commandService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"executeCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"OPEN_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" newWindow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"a"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"className"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"empty_button"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"onClick"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"openFolder"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n      "}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'file.empty.openFolder'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"内置命令","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%86%85%E7%BD%AE%E5%91%BD%E4%BB%A4","ariaLabel":"内置命令 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"内置命令"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 框架中,内置了许多基础命令,在需要实现时,你可以先到对应模块查找一下对应实现,避免重复劳动。常用的一些内置命令如下:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"命令"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"功能"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"revealInExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"在资源管理器界面定位文件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"setContext"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置 Context 变量值"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"key"}]},{"type":"text","value":":键, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"value"}]},{"type":"text","value":":值"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭当前激活的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.revertAndCloseActiveEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"恢复当前文件内容同时关闭激活的编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"向右拆分当前编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"向下拆分当前编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.newUntitledFile"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"新建临时的编辑器文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeAllEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭所有编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.closeOtherEditors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"关闭其他编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.save"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"保存当前文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件并向右拆分"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.splitEditorOrthogonal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件并向下拆分"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"resource"}]},{"type":"text","value":" : ResourceArgs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateLeft"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到左侧编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateUp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到顶部编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateRight"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到右侧编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateDown"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换到底部编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateEditorGroups"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换编辑器组"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.nextEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换至下个文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.previousEditor"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"切换至上个文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openEditorAtIndex"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"通过下标位置打开编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.revert"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"恢复当前激活的文件内容"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.clear"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"清理当前激活的终端窗口内容"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.terminal.toggleTerminal"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开/关闭 终端窗口"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.files.action.focusFilesExplorer"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开激活的编辑器组"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.open"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件(仅在 Electron 下可用)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"vscode.openFolder"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开文件夹(仅在 Electron 下可用)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"newWindow"}]},{"type":"text","value":": boolean"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.reloadWindow (reload_window)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"重载窗口"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"复制文件绝对路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"copyRelativeFilePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"复制文件相对路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"uri"}]},{"type":"text","value":": URI"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.openSettings"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"打开设置面板"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateBack"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"前往上一个编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.navigateForward"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"前往下一个编辑器"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.files.saveAll"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"保存全部文件"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepInto"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步入"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOut"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步出"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stepOver"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试步进"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.continue"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试继续"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.run (workbench.action.debug.start)"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试运行"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.pause"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试暂停"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.restart"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试重启"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.debug.stop"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试终止"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workbench.action.showAllSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"展示所有符号"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册自定义命令","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E5%91%BD%E4%BB%A4","ariaLabel":"注册自定义命令 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册自定义命令"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册自定义命令的方式同样也存在两种方式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"通过插件注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87%E6%8F%92%E4%BB%B6%E6%B3%A8%E5%86%8C","ariaLabel":"通过插件注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过插件注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插件注册主要依赖 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"commands"}]},{"type":"text","value":" 贡献点,详细文档可见:"},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.commands","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"contributes.commands"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在插件的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 声明自定义命令的简单例子如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"contributes\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"commands\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"command\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"extension.sayHello\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"title\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello World\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"category\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"Hello\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"icon\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"light\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"path/to/light/icon.svg\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"dark\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"path/to/dark/icon.svg\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"声明的好处是能够让该命令“显式”的存在于框架中,即通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"⇧⌘P"}]},{"type":"text","value":" 打开快速导航面板,或是在菜单中都能找到其位置,没有声明直接进行注册的命令将不会出现在上述面板中。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// sumi 自有插件 API"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"*"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"as"}]},{"type":"text","value":" sumi "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"context"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ExtensionContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  context"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"subscriptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"push"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'extension.sayHello'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      sumi"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"window"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"showInformationMessage"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'Hello World'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"通过模块注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87%E6%A8%A1%E5%9D%97%E6%B3%A8%E5%86%8C","ariaLabel":"通过模块注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过模块注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在模块中,我们通常采用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" 进行注册,详细可见文档:"},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point#%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%86%8C"},"children":[{"type":"text","value":"命令注册"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-command.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/custom-config/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/custom-config/page-data.json
        index 010da4d5..7a99e27e 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/custom-config/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/custom-config/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-config","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"使用自定义配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE","ariaLabel":"使用自定义配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用自定义配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,常见的配置项一般分为如下两种:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"运行时配置"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":" 一般为静态配置,随用户 IDE 服务的启动生效,即便修改后也需要 “刷新/重启服务” 后才能生效,常用的配置可以查看下面的 "},{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90%E9%85%8D%E7%BD%AE"},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":" 查看。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"运行时配置"}]},{"type":"text","value":" 一般为动态配置,支持在用户使用过程中通过一些界面操作,或用户自定义的方式去动态改变,常用于一些具有 “开关属性” 或 “多场景配置” 的场景,用户可以通过框架中的配置界面进行动态修改。\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN015YKbLY1xUmFjFnVNs_!!6000000006447-2-tps-2354-1118.png","alt":"settings"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":" 不同的是,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"运行时配置"}]},{"type":"text","value":" 在框架内可以通过具体的配置文件去进行自定义,如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"launch.json"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"task.json"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings.json"}]},{"type":"text","value":" 等文件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"运行时配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%BF%90%E8%A1%8C%E6%97%B6%E9%85%8D%E7%BD%AE","ariaLabel":"运行时配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"运行时配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8","ariaLabel":"如何使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在模块内,我们可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceService"}]},{"type":"text","value":" 服务直接获取相关配置的值,如下面我们可以通过该服务去获取我们注册的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debugModel.enable"}]},{"type":"text","value":" 配置项:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debugModel.enable'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而在插件中,我们兼容了 VS Code 中的 Configuration API,可以跟 VS Code 插件内采用相同的方式获取对应配置,如下面展示如何获取 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"launch.json"}]},{"type":"text","value":" 内的配置值:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" config "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getConfiguration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'launch'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"workspaceFolders"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"uri\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// retrieve values"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" values "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" config"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'configurations'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":" 中,也可以对框架一些默认的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"运行时配置"}]},{"type":"text","value":" 进行二次配置,下面的代码配置了 “默认情况下隐藏文件树下的 index.js 文件” 配置:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"appconfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  defaultPreferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'files.exclude'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认值 glob 表达式"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/.git'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/.svn'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/.hg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/CVS'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/.DS_Store'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 追加, 这里屏蔽了 index.js 文件的展示"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'**/index.js'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"需要注意的是,这些配置将影响 IDE 初次访问情况的表现,当用户通过设置面板或文件修改配置后,后续访问将会采用用户的自定义配置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何注册新的配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E6%B3%A8%E5%86%8C%E6%96%B0%E7%9A%84%E9%85%8D%E7%BD%AE","ariaLabel":"如何注册新的配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何注册新的配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"常用的注册运行时配置主要有如下两种方式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"模块 —— 通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" 贡献点注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"插件 —— 通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Configurations"}]},{"type":"text","value":" 贡献点注册"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了自定义配置能力,基于 "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution Point"}]},{"type":"text","value":" 机制,只需要实现 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" 即可进行配置注册。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"举个例子,我们通过创建 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" 可以在项目中注册运行时配置,伪代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" DemoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'debugModel.enable'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" DemoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过将 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" 引入到模块中的 Providers 声明后,便可以在其他模块通过下面方式使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debugModel.enable'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"另一种注册方式则是通过插件的 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.configuration","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Configuration 贡献点"}]},{"type":"text","value":" 在插件中进行注册。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"集成配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90%E9%85%8D%E7%BD%AE","ariaLabel":"集成配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"集成配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在集成 OpenSumi 框架的时候,我们往往需要进行独立的配置,下面列举了一些可在集成阶段通过传入配置项进行配置的参数:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"本地客户端示例"}]},{"type":"text","value":" 项目中,找到 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/blob/main/src/browser/index.ts#L113","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L113"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"text","value":" 初始化方法添加如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 追加配置"}]},{"type":"text","value":"\n  appName"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 原有内容"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebIDE 示例"}]},{"type":"text","value":" 项目中, 你也可以找到类似配置,见 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/main/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L12"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"完整配置文件可以参考实时代码:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01kT4yVO1Ul9YeeMGWE_!!6000000002557-2-tps-1722-1490.png","alt":"appconfig"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"浏览器端配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AB%AF%E9%85%8D%E7%BD%AE","ariaLabel":"浏览器端配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"浏览器端配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"定义可见 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" 定义。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例项目中修改配置的参考位置如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebIDE 示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/main/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L12"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"纯前端示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite/blob/main/src/app.tsx#L52","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L52"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"本地客户端示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/blob/main/src/browser/index.ts#L113","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L113"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"部分配置如下:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数说明"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"默认值"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"appName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"客户端的唯一名称,一般在客户端启动时的标题展示使用,同时也作为插件进程输出的客户端名称"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"OpenSumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uriScheme"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"主要用于注册 Electron 版本中的客户端协议,便于实现协议唤起"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"工作区路径,一般为一个文件夹或是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"*.sumi-workspace"}]},{"type":"text","value":" 的工作区文件,当传入值为空时,编辑器左侧文件树将会展示打开文件夹的按钮。"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"didRendered"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"当 DOM 首次渲染完成后调用,此时表示 IDE 界面已经完成渲染并可以操作,可以在此处传入函数处理界面 Loading,参考:"},{"type":"element","tagName":"a","properties":{"href":"https://yuque.antfin.com/ide-framework/integration/features#Zs82P","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"DidRendered"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件目录路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionCandidate"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"额外指定的插件路径,一般用于内置插件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"storageDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置全局存储的文件夹名称,主要针对使用了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Storage"}]},{"type":"text","value":" 模块相关存储服务时进行文件夹名称配置"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"preferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置工作区配置文件的文件夹名称,对于集成环境,我们更推荐使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"text","value":" 进行更加精细的配置存储文件夹名称配置"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"更精细的项目工作区配置存储位置,即当 preferenceDirName = '.sumi' , workspacePreferenceDirName = '.kt'时,对应全局配置为 ~/.sumi/settings.json , 工作区配置为 {workspaceDir}/.kt/settings.json"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"更精细的项目用户配置存储位置,即当 preferenceDirName = '.sumi' , userPreferenceDirName = '.kt'时,对应全局配置为 ~/.sumi/settings.json , 工作区配置为 {userDir}/.kt/settings.json"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionStorageDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"全局插件数据存储目录名称,默认 .sumi,存储数据位置在 {userDir}/.sumi"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"defaultPreferences"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"对客户端的整体配置进行初始化定义,常见的自定义参数如:颜色主题:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.theme"}]},{"type":"text","value":"、图标主题:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.icon"}]},{"type":"text","value":"、语言:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.language"}]},{"type":"text","value":"、排除文件选项:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"filesExclude"}]},{"type":"text","value":"、排除文件监听选项:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"watchExclude"}]},{"type":"text","value":" 等等,理论上可针对所有 IDE 中定义的配置进行默认值设置"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"injector"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"初始化的 DI 实例,一般可在外部进行 DI 初始化之后传入,便于提前进行一些依赖的初始化"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"wsPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"默认 WebScoket 通信路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"layoutConfig"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义 IDE 各个布局区块默认加载的模块,可针对性对模块进行增删改。"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/main-layout/src/browser/default-config.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"default-config.tsx"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"layoutConponent"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义 IDE 的整体布局,可以通过传入自定义布局的方式定义各个区块的默认大小及缩放选项等"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-browser/src/components/layout/default-layout.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"default-layout.tsx"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"panelSizes"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"可基于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layoutComponent"}]},{"type":"text","value":" 配置的基础上,定义面板大小,宽度/高度"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"defaultPanels"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义各个区块的默认面板如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"defaultPanels: { [SlotLocation.bottom]: '@opensumi/ide-terminal-next' }"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"webviewEndpoint"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"用于挂载 webview 的 iframe 地址"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://${deviceIp}:${port}/webview"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extWorkerHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Worker 插件的默认启动路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://dev.g.alicdn.com/tao-ide/ide-lite/$%7Bversion%7D/worker-host.js","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://dev.g.alicdn.com/tao-ide/ide-lite/${version}/worker-host.js"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticServicePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义静态资源路径,框架内默认加载路径为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8000/assets/${path}"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1:8000/assets/$%7Bpath%7D","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1:8000/assets/${path}"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionDevelopmentHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义是否以插件开发模式启动"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"editorBackgroundImage"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义编辑器界面的背景图片"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"useExperimentalShadowDom"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义是否在插件环境中启用 ShadowDom 模式,建议打开,打开后,视图插件的样式将会与全局环境隔离"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"useIframeWrapWorkerHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"加载 workerHost 时使用 iframe 包装,对于跨域的场景,加载 workerHost 时会使用 base64 编码后通过 importScripts 引入(importScripts 不受跨域限制),但这会导致 workerHost 的 origin 为 null,使某些请求失败"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"clientId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"自定义客户端 id,是 websocket 服务的唯一标识,也是传给声明了 backServices 的后端 Service 的唯一标识,注意保持这个 id 的唯一性"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"noExtHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"是否禁用插件进程"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extraContextProvider"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"额外的 ConfigProvider,可以让 OpenSumi 内部的 ReactDOM.render 调用时,都被其包裹一层,以达到额外的 Context 传递效果"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"allowSetDocumentTitleFollowWorkspaceDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"允许按照工作区路径去动态设置 document#title,"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"true"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"remoteHostname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"远程访问地址,可以通过该地址访问当容器服务"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"window.location.hostname"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"enableDebugExtensionHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"开启插件进程的调试能力"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"inspectExtensionHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试插件进程时的 ip 地址"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionFetchCredentials"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"加载插件前端资源时的 fetch credentials 选项,可选项为 \"include\""}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"\"omit\""}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionConnectOption"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"参考:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-common/src/types/extension.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ExtensionConnectOption"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"服务端配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE","ariaLabel":"服务端配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"服务端配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"定义可见 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/a3e8741b86ba2dc7974d914da35e74200aabe1e2/packages/core-node/src/types.ts#L43~L115","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" 定义。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例项目中修改配置的参考位置如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebIDE 示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/main/src/node/start-server.ts#L50","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L50"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"本地客户端示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/blob/main/src/node/server.ts#L65","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L65"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"部分配置如下:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数说明"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"默认值"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"injector"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"初始化的 DI 实例,一般可在外部进行 DI 初始化之后传入,便于提前进行一些依赖的初始化"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"marketplace"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"参考:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-node/src/bootstrap/app.ts#L28","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MarketplaceConfig"}]}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"logLevel"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置落盘日志级别,默认为 Info 级别的 log 落盘"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"LogLevel.Info"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"logDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义日志落盘路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"~/.sumi/logs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"LogServiceClass"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"待废弃,外部设置的 ILogService,替换默认的 logService,可通过在传入的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"injector"}]},{"type":"text","value":" 初始化 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ILogService"}]},{"type":"text","value":" 进行实现替换"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"maxExtProcessCount"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义启用插件进程的最大个数"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extLogServiceClassPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义插件日志自定义实现路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"processCloseExitThreshold"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义插件进程关闭时间"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"terminalPtyCloseThreshold"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义终端 pty 进程退出时间"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticAllowOrigin"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"访问静态资源允许的 origin"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticAllowPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"访问静态资源允许的路径,用于配置静态资源的白名单规则"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"blockPatterns"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"文件服务禁止访问的路径,使用 glob 匹配"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件 Node 进程入口文件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHostIPCSockPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件进程存放用于通信的 sock 地址"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"/tmp"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHostForkOptions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件进程 fork 配置"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多配置,可查看 OpenSumi 源码 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-config.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-config","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"使用自定义配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE","ariaLabel":"使用自定义配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用自定义配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 OpenSumi 中,常见的配置项一般分为如下两种:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"运行时配置"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":" 一般为静态配置,随用户 IDE 服务的启动生效,即便修改后也需要 “刷新/重启服务” 后才能生效,常用的配置可以查看下面的 "},{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90%E9%85%8D%E7%BD%AE"},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":" 查看。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"运行时配置"}]},{"type":"text","value":" 一般为动态配置,支持在用户使用过程中通过一些界面操作,或用户自定义的方式去动态改变,常用于一些具有 “开关属性” 或 “多场景配置” 的场景,用户可以通过框架中的配置界面进行动态修改。\n"},{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN015YKbLY1xUmFjFnVNs_!!6000000006447-2-tps-2354-1118.png","alt":"settings"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"与 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":" 不同的是,"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"运行时配置"}]},{"type":"text","value":" 在框架内可以通过具体的配置文件去进行自定义,如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"launch.json"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"task.json"}]},{"type":"text","value":"、"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"settings.json"}]},{"type":"text","value":" 等文件。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"运行时配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%BF%90%E8%A1%8C%E6%97%B6%E9%85%8D%E7%BD%AE","ariaLabel":"运行时配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"运行时配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8","ariaLabel":"如何使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在模块内,我们可以通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceService"}]},{"type":"text","value":" 服务直接获取相关配置的值,如下面我们可以通过该服务去获取我们注册的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"debugModel.enable"}]},{"type":"text","value":" 配置项:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debugModel.enable'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而在插件中,我们兼容了 VS Code 中的 Configuration API,可以跟 VS Code 插件内采用相同的方式获取对应配置,如下面展示如何获取 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"launch.json"}]},{"type":"text","value":" 内的配置值:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" config "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getConfiguration"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'launch'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  vscode"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"workspace"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"workspaceFolders"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"uri\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// retrieve values"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" values "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" config"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'configurations'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"集成配置"}]},{"type":"text","value":" 中,也可以对框架一些默认的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"运行时配置"}]},{"type":"text","value":" 进行二次配置,下面的代码配置了 “默认情况下隐藏文件树下的 index.js 文件” 配置:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"appconfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  defaultPreferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'files.exclude'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 默认值 glob 表达式"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/.git'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/.svn'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/.hg'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/CVS'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'**/.DS_Store'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 追加, 这里屏蔽了 index.js 文件的展示"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'**/index.js'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n   "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"需要注意的是,这些配置将影响 IDE 初次访问情况的表现,当用户通过设置面板或文件修改配置后,后续访问将会采用用户的自定义配置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何注册新的配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E6%B3%A8%E5%86%8C%E6%96%B0%E7%9A%84%E9%85%8D%E7%BD%AE","ariaLabel":"如何注册新的配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何注册新的配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"常用的注册运行时配置主要有如下两种方式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"模块 —— 通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" 贡献点注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"插件 —— 通过 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Configurations"}]},{"type":"text","value":" 贡献点注册"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了自定义配置能力,基于 "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution Point"}]},{"type":"text","value":" 机制,只需要实现 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" 即可进行配置注册。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"举个例子,我们通过创建 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" 可以在项目中注册运行时配置,伪代码如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" PreferenceContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Domain"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-common'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" DemoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'object'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  properties"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'debugModel.enable'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"default"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      description"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"PreferenceContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"public"}]},{"type":"text","value":" schema"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceSchema "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" DemoPreferenceSchema"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过将 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"DemoPreferenceContribution"}]},{"type":"text","value":" 引入到模块中的 Providers 声明后,便可以在其他模块通过下面方式使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"readonly"}]},{"type":"text","value":" preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PreferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"this"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"preferenceService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"get"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'debugModel.enable'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"另一种注册方式则是通过插件的 "},{"type":"element","tagName":"a","properties":{"href":"https://code.visualstudio.com/api/references/contribution-points#contributes.configuration","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Configuration 贡献点"}]},{"type":"text","value":" 在插件中进行注册。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"集成配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90%E9%85%8D%E7%BD%AE","ariaLabel":"集成配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"集成配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在集成 OpenSumi 框架的时候,我们往往需要进行独立的配置,下面列举了一些可在集成阶段通过传入配置项进行配置的参数:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"本地客户端示例"}]},{"type":"text","value":" 项目中,找到 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/blob/main/src/browser/index.ts#L113","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L113"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"text","value":" 初始化方法添加如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 追加配置"}]},{"type":"text","value":"\n  appName"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'OpenSumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 原有内容"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"而在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebIDE 示例"}]},{"type":"text","value":" 项目中, 你也可以找到类似配置,见 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/main/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L12"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"完整配置文件可以参考实时代码:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN01kT4yVO1Ul9YeeMGWE_!!6000000002557-2-tps-1722-1490.png","alt":"appconfig"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"浏览器端配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AB%AF%E9%85%8D%E7%BD%AE","ariaLabel":"浏览器端配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"浏览器端配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"定义可见 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-browser"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/react-providers/config-provider.tsx#L14~#L245","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" 定义。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例项目中修改配置的参考位置如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebIDE 示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/main/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L12"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"纯前端示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite/blob/main/src/app.tsx#L52","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L52"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"本地客户端示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/blob/main/src/browser/index.ts#L113","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L113"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"部分配置如下:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数说明"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"默认值"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"appName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"客户端的唯一名称,一般在客户端启动时的标题展示使用,同时也作为插件进程输出的客户端名称"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"OpenSumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uriScheme"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"主要用于注册 Electron 版本中的客户端协议,便于实现协议唤起"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workspaceDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"工作区路径,一般为一个文件夹或是 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"*.sumi-workspace"}]},{"type":"text","value":" 的工作区文件,当传入值为空时,编辑器左侧文件树将会展示打开文件夹的按钮。"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"didRendered"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"当 DOM 首次渲染完成后调用,此时表示 IDE 界面已经完成渲染并可以操作,可以在此处传入函数处理界面 Loading,参考:"},{"type":"element","tagName":"a","properties":{"href":"https://yuque.antfin.com/ide-framework/integration/features#Zs82P","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"DidRendered"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件目录路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionCandidate"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"额外指定的插件路径,一般用于内置插件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"storageDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置全局存储的文件夹名称,主要针对使用了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Storage"}]},{"type":"text","value":" 模块相关存储服务时进行文件夹名称配置"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"preferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置工作区配置文件的文件夹名称,对于集成环境,我们更推荐使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"text","value":" 进行更加精细的配置存储文件夹名称配置"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"workspacePreferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"更精细的项目工作区配置存储位置,即当 preferenceDirName = '.sumi' , workspacePreferenceDirName = '.kt'时,对应全局配置为 ~/.sumi/settings.json , 工作区配置为 {workspaceDir}/.kt/settings.json"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"userPreferenceDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"更精细的项目用户配置存储位置,即当 preferenceDirName = '.sumi' , userPreferenceDirName = '.kt'时,对应全局配置为 ~/.sumi/settings.json , 工作区配置为 {userDir}/.kt/settings.json"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionStorageDirName"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"全局插件数据存储目录名称,默认 .sumi,存储数据位置在 {userDir}/.sumi"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":".sumi"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"defaultPreferences"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"对客户端的整体配置进行初始化定义,常见的自定义参数如:颜色主题:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.theme"}]},{"type":"text","value":"、图标主题:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.icon"}]},{"type":"text","value":"、语言:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"general.language"}]},{"type":"text","value":"、排除文件选项:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"filesExclude"}]},{"type":"text","value":"、排除文件监听选项:"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"watchExclude"}]},{"type":"text","value":" 等等,理论上可针对所有 IDE 中定义的配置进行默认值设置"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"injector"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"初始化的 DI 实例,一般可在外部进行 DI 初始化之后传入,便于提前进行一些依赖的初始化"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"wsPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"默认 WebScoket 通信路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"layoutConfig"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义 IDE 各个布局区块默认加载的模块,可针对性对模块进行增删改。"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/main-layout/src/browser/default-config.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"default-config.tsx"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"layoutConponent"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义 IDE 的整体布局,可以通过传入自定义布局的方式定义各个区块的默认大小及缩放选项等"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-browser/src/components/layout/default-layout.tsx","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"default-layout.tsx"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"panelSizes"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"可基于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"layoutComponent"}]},{"type":"text","value":" 配置的基础上,定义面板大小,宽度/高度"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"defaultPanels"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义各个区块的默认面板如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"defaultPanels: { [SlotLocation.bottom]: '@opensumi/ide-terminal-next' }"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"webviewEndpoint"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"用于挂载 webview 的 iframe 地址"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://${deviceIp}:${port}/webview"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extWorkerHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Worker 插件的默认启动路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://dev.g.alicdn.com/tao-ide/ide-lite/$%7Bversion%7D/worker-host.js","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://dev.g.alicdn.com/tao-ide/ide-lite/${version}/worker-host.js"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticServicePath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义静态资源路径,框架内默认加载路径为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"http://127.0.0.1:8000/assets/${path}"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://127.0.0.1:8000/assets/$%7Bpath%7D","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"http://127.0.0.1:8000/assets/${path}"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionDevelopmentHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义是否以插件开发模式启动"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"editorBackgroundImage"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义编辑器界面的背景图片"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"useExperimentalShadowDom"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义是否在插件环境中启用 ShadowDom 模式,建议打开,打开后,视图插件的样式将会与全局环境隔离"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"useIframeWrapWorkerHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"加载 workerHost 时使用 iframe 包装,对于跨域的场景,加载 workerHost 时会使用 base64 编码后通过 importScripts 引入(importScripts 不受跨域限制),但这会导致 workerHost 的 origin 为 null,使某些请求失败"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"clientId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"自定义客户端 id,是 websocket 服务的唯一标识,也是传给声明了 backServices 的后端 Service 的唯一标识,注意保持这个 id 的唯一性"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"noExtHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"是否禁用插件进程"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extraContextProvider"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"额外的 ConfigProvider,可以让 OpenSumi 内部的 ReactDOM.render 调用时,都被其包裹一层,以达到额外的 Context 传递效果"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"allowSetDocumentTitleFollowWorkspaceDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"允许按照工作区路径去动态设置 document#title,"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"true"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"remoteHostname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"远程访问地址,可以通过该地址访问当容器服务"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"window.location.hostname"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"enableDebugExtensionHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"开启插件进程的调试能力"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"false"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"inspectExtensionHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调试插件进程时的 ip 地址"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionFetchCredentials"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"加载插件前端资源时的 fetch credentials 选项,可选项为 \"include\""}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"\"omit\""}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionConnectOption"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"参考:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-common/src/types/extension.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ExtensionConnectOption"}]}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"服务端配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE","ariaLabel":"服务端配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"服务端配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"定义可见 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"@opensumi/ide-core-node"}]},{"type":"text","value":" 中的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/a3e8741b86ba2dc7974d914da35e74200aabe1e2/packages/core-node/src/types.ts#L43~L115","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"AppConfig"}]},{"type":"text","value":" 定义。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"示例项目中修改配置的参考位置如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"WebIDE 示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/main/src/node/start-server.ts#L50","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L50"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"本地客户端示例"}]},{"type":"text","value":" - "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-electron/blob/main/src/node/server.ts#L65","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"src/browser/index.ts#L65"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"部分配置如下:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"参数说明"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"默认值"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"injector"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"初始化的 DI 实例,一般可在外部进行 DI 初始化之后传入,便于提前进行一些依赖的初始化"}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"marketplace"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"参考:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/58b998d9e1f721928f576579f16ded46b7505e84/packages/core-node/src/bootstrap/app.ts#L28","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"MarketplaceConfig"}]}]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"logLevel"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"设置落盘日志级别,默认为 Info 级别的 log 落盘"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"LogLevel.Info"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"logDir"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义日志落盘路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"~/.sumi/logs"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"LogServiceClass"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"待废弃,外部设置的 ILogService,替换默认的 logService,可通过在传入的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"injector"}]},{"type":"text","value":" 初始化 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ILogService"}]},{"type":"text","value":" 进行实现替换"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"maxExtProcessCount"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义启用插件进程的最大个数"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extLogServiceClassPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义插件日志自定义实现路径"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"processCloseExitThreshold"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义插件进程关闭时间"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"terminalPtyCloseThreshold"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"定义终端 pty 进程退出时间"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticAllowOrigin"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"访问静态资源允许的 origin"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"staticAllowPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"访问静态资源允许的路径,用于配置静态资源的白名单规则"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"blockPatterns"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"文件服务禁止访问的路径,使用 glob 匹配"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHost"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件 Node 进程入口文件"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHostIPCSockPath"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件进程存放用于通信的 sock 地址"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"/tmp"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extHostForkOptions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件进程 fork 配置"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多配置,可查看 OpenSumi 源码 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"opensumi/core"}]},{"type":"text","value":"。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-config.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/custom-keybinding/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/custom-keybinding/page-data.json
        index 46d8ce56..17d25395 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/custom-keybinding/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/custom-keybinding/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-keybinding","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"作为一款富交互的 IDE,良好的快捷键设计能很大程度上解放使用者对于界面操作的依赖,提高工作/操作效率,而在 OpenSumi 框架中,除了支持通过插件的形式注册插件外,也支持通过模块的方式进行拓展,本文重点讲解如何在集成阶段为你的应用预设更多的快捷键。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册快捷键","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E5%BF%AB%E6%8D%B7%E9%94%AE","ariaLabel":"注册快捷键 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册快捷键"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在模块中,我们通常采用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" 的方式进行注册,详细可参见:"},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point#%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%B3%A8%E5%86%8C"},"children":[{"type":"text","value":"快捷键注册"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"支持的快捷键字符","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%94%AF%E6%8C%81%E7%9A%84%E5%BF%AB%E6%8D%B7%E9%94%AE%E5%AD%97%E7%AC%A6","ariaLabel":"支持的快捷键字符 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"支持的快捷键字符"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"特定平台下支持的修饰符如下:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"平台"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"修饰符"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"macOS"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Cmd+"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Windows"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Win+"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Linux"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Meta+"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,你也可以在快捷键注册时使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ctrlcmd"}]},{"type":"text","value":" 来作为修饰符使用,该修饰符在 macOS 下会被识别为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Cmd"}]},{"type":"text","value":" 而在 Linux 和 Windows 下会被识别为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其余支持的一些键值如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"f1-f19"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"a-z"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"0-9"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"-"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"="},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"["},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":", "}]},{"type":"text","value":"]"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"`, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"."},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"/`"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"left"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"up"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"right"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"down"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pageup"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pagedown"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"end"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"home"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tab"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"enter"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"escape"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"space"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"backspace"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"delete"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pausebreak"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"capslock"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"insert"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad0-numpad9"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_multiply"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_add"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_separator"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_subtract"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_decimal"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_divide"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"通过-when-控制生效范围","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87-when-%E6%8E%A7%E5%88%B6%E7%94%9F%E6%95%88%E8%8C%83%E5%9B%B4","ariaLabel":"通过 when 控制生效范围 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过 when 控制生效范围"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般而言,在我们注册一个快捷键的时候,我们都只希望这个快捷键在特定的区域生效,通常我们建议使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 逻辑进行控制,在 OpenSumi 框架中定义了部分 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 表达式,大部分情况下你可以直接使用,见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/f3fd01381d6ee854102d491b14957e9e634941a3/packages/core-browser/src/contextkey/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"contextkey/index.ts"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你只需要在注册快捷键的时候加上 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 字段,便可以让快捷键的只在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 生效的时候被响应,这能有效避免在你的 IDE 中出现快捷键冲突的情况。如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'type'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'enter'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  when"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'editorTextFocus'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以自定义或注册 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 表达式,详细可参考简单的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/f3fd01381d6ee854102d491b14957e9e634941a3/packages/overlay/src/browser/dialog.contextkey.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"dialog.contextkey.ts"}]},{"type":"text","value":" 例子。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"自此,你便可以通过集成自定义了快捷键的模块的方式实现对功能快捷键的定制。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-keybinding.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-keybinding","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"作为一款富交互的 IDE,良好的快捷键设计能很大程度上解放使用者对于界面操作的依赖,提高工作/操作效率,而在 OpenSumi 框架中,除了支持通过插件的形式注册插件外,也支持通过模块的方式进行拓展,本文重点讲解如何在集成阶段为你的应用预设更多的快捷键。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册快捷键","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E5%BF%AB%E6%8D%B7%E9%94%AE","ariaLabel":"注册快捷键 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册快捷键"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在模块中,我们通常采用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"KeybindingContribution"}]},{"type":"text","value":" 的方式进行注册,详细可参见:"},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point#%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%B3%A8%E5%86%8C"},"children":[{"type":"text","value":"快捷键注册"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"支持的快捷键字符","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%94%AF%E6%8C%81%E7%9A%84%E5%BF%AB%E6%8D%B7%E9%94%AE%E5%AD%97%E7%AC%A6","ariaLabel":"支持的快捷键字符 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"支持的快捷键字符"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"特定平台下支持的修饰符如下:"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"平台"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"修饰符"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"macOS"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Cmd+"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Windows"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Win+"}]}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"Linux"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Shift+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Alt+"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Meta+"}]}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"同时,你也可以在快捷键注册时使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ctrlcmd"}]},{"type":"text","value":" 来作为修饰符使用,该修饰符在 macOS 下会被识别为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Cmd"}]},{"type":"text","value":" 而在 Linux 和 Windows 下会被识别为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Ctrl"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其余支持的一些键值如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"f1-f19"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"a-z"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"0-9"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"-"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"="},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"["},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":", "}]},{"type":"text","value":"]"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"`, "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"."},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"/`"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"left"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"up"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"right"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"down"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pageup"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pagedown"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"end"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"home"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"tab"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"enter"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"escape"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"space"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"backspace"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"delete"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"pausebreak"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"capslock"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"insert"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad0-numpad9"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_multiply"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_add"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_separator"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_subtract"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_decimal"}]},{"type":"text","value":", "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"numpad_divide"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"通过-when-控制生效范围","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%80%9A%E8%BF%87-when-%E6%8E%A7%E5%88%B6%E7%94%9F%E6%95%88%E8%8C%83%E5%9B%B4","ariaLabel":"通过 when 控制生效范围 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"通过 when 控制生效范围"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般而言,在我们注册一个快捷键的时候,我们都只希望这个快捷键在特定的区域生效,通常我们建议使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 逻辑进行控制,在 OpenSumi 框架中定义了部分 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 表达式,大部分情况下你可以直接使用,见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/f3fd01381d6ee854102d491b14957e9e634941a3/packages/core-browser/src/contextkey/index.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"contextkey/index.ts"}]},{"type":"text","value":"。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你只需要在注册快捷键的时候加上 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 字段,便可以让快捷键的只在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 生效的时候被响应,这能有效避免在你的 IDE 中出现快捷键冲突的情况。如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"text","value":"keybindings"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerKeybinding"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'type'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  keybinding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'enter'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  when"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'editorTextFocus'"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"你也可以自定义或注册 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"when"}]},{"type":"text","value":" 表达式,详细可参考简单的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/f3fd01381d6ee854102d491b14957e9e634941a3/packages/overlay/src/browser/dialog.contextkey.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"dialog.contextkey.ts"}]},{"type":"text","value":" 例子。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"自此,你便可以通过集成自定义了快捷键的模块的方式实现对功能快捷键的定制。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-keybinding.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint/page-data.json
        index 1104560a..f0cb3b96 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 同时支持 "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.opentrs.cn/square","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"蚂蚁 CloudIDE 插件市场"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":" ,两个插件市场可以通过配置相互切换,目前默认使用的是蚂蚁 CloudIDE 插件市场"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"配置方式","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F","ariaLabel":"配置方式 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"配置方式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般框架的初始项目会在两个地方使用插件市场相关的配置,一个为安装默认插件的下载脚本,另一个则是框架启动时的插件市场配置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何修改下载脚本","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E4%B8%8B%E8%BD%BD%E8%84%9A%E6%9C%AC","ariaLabel":"如何修改下载脚本 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何修改下载脚本"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下载脚本("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scripts/download.js"}]},{"type":"text","value":")默认使用的是蚂蚁 CloudIDE 插件市场,如需切换,可以在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 文件的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"download-extension"}]},{"type":"text","value":" 命令中指定插件市场类型:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    -"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"download-extension\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"cross-env DEBUG=InstallExtension node scripts/download.js\""}]},{"type":"text","value":"\n    +"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"download-extension\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"cross-env DEBUG=InstallExtension MARKETPLACE=openvsx node scripts/download.js\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何修改插件市场源","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA%E6%BA%90","ariaLabel":"如何修改插件市场源 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何修改插件市场源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"可以参考这里的代码:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/example/src/node/start-server.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node/start-server.ts#L18"}]},{"type":"text","value":",在 Node 进程启动的配置参数中添加相关参数信息,具体配置如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"蚂蚁-cloudide-插件市场","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%9A%82%E8%9A%81-cloudide-%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA","ariaLabel":"蚂蚁 cloudide 插件市场 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"蚂蚁 CloudIDE 插件市场"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" opts"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IServerAppOpts "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  marketplace"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    endpoint"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://marketplace.opentrs.cn'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    accountId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clcJKq_Gea47whxAJGrgoYqf'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    masterKey"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'_V_LPJ6Ar-1nrSVa05xDGBYp'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"上文配置中使用的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"accountId"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"masterKey"}]},{"type":"text","value":" 是由蚂蚁 CloudIDE 插件市场提供的公共密钥,该密钥默认可访问插件市场中全部的公开插件,如需要自定义密钥,可以参考 "},{"type":"element","tagName":"a","properties":{"href":"https://www.opentrs.cn/cloudide/documents/documentDetail?productStr=cloudide-20221026&nameSpace=trms2d/xyyfdt&slug=ooxr2vxp32r9hv4q","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"蚂蚁 CloudIDE 插件市场文档"}]},{"type":"text","value":" 中的客户端管理一节的内容,通过自定义密钥,用户可以访问自己托管在插件市场中的私有插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"eclipse-open-vsx","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#eclipse-open-vsx","ariaLabel":"eclipse open vsx permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" opts"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IServerAppOpts "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  marketplace"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    endpoint"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://open-vsx.org/api'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Official Registry"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// endpoint: 'https://marketplace.smartide.cn/api', // China Mirror"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如遇到插件市场无法正常访问问题,请及时切换相应的插件插件源解决该问题。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件同步机制","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E5%90%8C%E6%AD%A5%E6%9C%BA%E5%88%B6","ariaLabel":"插件同步机制 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件同步机制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前 OpenSumi 对 VSCode 插件 API 的兼容有一定的滞后性(约三个月),因此托管在插件市场中的 VSCode 插件在同步前必须先进行代码扫描,如果用户在使用蚂蚁 CloudIDE 插件市场时发现缺少想要的插件,可以在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi 项目主仓库"}]},{"type":"text","value":" issues 列表中提出插件同步需求,项目组成员会对插件扫描后同步可用的版本。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-marketplace-entrypoint.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 同时支持 "},{"type":"element","tagName":"a","properties":{"href":"https://marketplace.opentrs.cn/square","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"蚂蚁 CloudIDE 插件市场"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"a","properties":{"href":"https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":" ,两个插件市场可以通过配置相互切换,目前默认使用的是蚂蚁 CloudIDE 插件市场"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"配置方式","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F","ariaLabel":"配置方式 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"配置方式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般框架的初始项目会在两个地方使用插件市场相关的配置,一个为安装默认插件的下载脚本,另一个则是框架启动时的插件市场配置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何修改下载脚本","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E4%B8%8B%E8%BD%BD%E8%84%9A%E6%9C%AC","ariaLabel":"如何修改下载脚本 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何修改下载脚本"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下载脚本("},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"scripts/download.js"}]},{"type":"text","value":")默认使用的是蚂蚁 CloudIDE 插件市场,如需切换,可以在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"package.json"}]},{"type":"text","value":" 文件的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"download-extension"}]},{"type":"text","value":" 命令中指定插件市场类型:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"json"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-json"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"scripts\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    -"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"download-extension\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"cross-env DEBUG=InstallExtension node scripts/download.js\""}]},{"type":"text","value":"\n    +"},{"type":"element","tagName":"span","properties":{"className":["token","property"]},"children":[{"type":"text","value":"\"download-extension\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"cross-env DEBUG=InstallExtension MARKETPLACE=openvsx node scripts/download.js\""}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"如何修改插件市场源","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA%E6%BA%90","ariaLabel":"如何修改插件市场源 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"如何修改插件市场源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"可以参考这里的代码:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-module-samples/blob/main/example/src/node/start-server.ts#L18","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"node/start-server.ts#L18"}]},{"type":"text","value":",在 Node 进程启动的配置参数中添加相关参数信息,具体配置如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"蚂蚁-cloudide-插件市场","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%9A%82%E8%9A%81-cloudide-%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA","ariaLabel":"蚂蚁 cloudide 插件市场 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"蚂蚁 CloudIDE 插件市场"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" opts"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IServerAppOpts "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  marketplace"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    endpoint"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://marketplace.opentrs.cn'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    accountId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'clcJKq_Gea47whxAJGrgoYqf'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    masterKey"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'_V_LPJ6Ar-1nrSVa05xDGBYp'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"上文配置中使用的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"accountId"}]},{"type":"text","value":" 及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"masterKey"}]},{"type":"text","value":" 是由蚂蚁 CloudIDE 插件市场提供的公共密钥,该密钥默认可访问插件市场中全部的公开插件,如需要自定义密钥,可以参考 "},{"type":"element","tagName":"a","properties":{"href":"https://www.opentrs.cn/cloudide/documents/documentDetail?productStr=cloudide-20221026&nameSpace=trms2d/xyyfdt&slug=ooxr2vxp32r9hv4q","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"蚂蚁 CloudIDE 插件市场文档"}]},{"type":"text","value":" 中的客户端管理一节的内容,通过自定义密钥,用户可以访问自己托管在插件市场中的私有插件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"eclipse-open-vsx","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#eclipse-open-vsx","ariaLabel":"eclipse open vsx permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Eclipse Open VSX"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"let"}]},{"type":"text","value":" opts"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IServerAppOpts "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  marketplace"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    endpoint"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'https://open-vsx.org/api'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// Official Registry"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// endpoint: 'https://marketplace.smartide.cn/api', // China Mirror"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如遇到插件市场无法正常访问问题,请及时切换相应的插件插件源解决该问题。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"插件同步机制","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E5%90%8C%E6%AD%A5%E6%9C%BA%E5%88%B6","ariaLabel":"插件同步机制 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件同步机制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"目前 OpenSumi 对 VSCode 插件 API 的兼容有一定的滞后性(约三个月),因此托管在插件市场中的 VSCode 插件在同步前必须先进行代码扫描,如果用户在使用蚂蚁 CloudIDE 插件市场时发现缺少想要的插件,可以在 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/issues","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"OpenSumi 项目主仓库"}]},{"type":"text","value":" issues 列表中提出插件同步需求,项目组成员会对插件扫描后同步可用的版本。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-marketplace-entrypoint.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/custom-menu/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/custom-menu/page-data.json
        index cdafa44e..8e1011f2 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/custom-menu/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/custom-menu/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-menu","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"注册自定义菜单","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95","ariaLabel":"注册自定义菜单 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册自定义菜单"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册自定义菜单,常见的有两种模式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"注册新的菜单项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"向已有的菜单项注册子菜单"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了自定义菜单能力,基于 OpenSumi 的 "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" 机制,实现 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" ,调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"menuRegistry"}]},{"type":"text","value":" 提供的方法即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registerMenus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册新的菜单项"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    item"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PartialBy"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IMenubarItem"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'id'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 向已有的菜单项注册子菜单"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    item"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuItem "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ISubmenuItem "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" IInternalComponentMenuItem\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册新的菜单项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E6%96%B0%E7%9A%84%E8%8F%9C%E5%8D%95%E9%A1%B9","ariaLabel":"注册新的菜单项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册新的菜单项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"例如我们希望注册一个新的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"终端"}]},{"type":"text","value":" 菜单项,并希望它展示在第一项,调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry.registerMenuBarItem"}]},{"type":"text","value":", 同时传入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"order: 0"}]},{"type":"text","value":" 表示其定位在第一项。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01AMrUFm1E5RVxMZ417_!!6000000000300-2-tps-3808-2414.png","alt":"Menu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"向已有的菜单项注册子菜单","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%91%E5%B7%B2%E6%9C%89%E7%9A%84%E8%8F%9C%E5%8D%95%E9%A1%B9%E6%B3%A8%E5%86%8C%E5%AD%90%E8%8F%9C%E5%8D%95","ariaLabel":"向已有的菜单项注册子菜单 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"向已有的菜单项注册子菜单"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们将"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"终端"}]},{"type":"text","value":"菜单项注册在了菜单栏的第一项,但它还没有子菜单,点击后没有任何反应,我们需要再为其注册一组子菜单。调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"text","value":" 可以注册单个菜单项,也可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"text","value":" 方法来批量注册多个子菜单项。\n菜单点击后需要执行某些操作,在这个例子中,我们希望点击后拆分终端,需要为其绑定一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" 也一样可以通过实现 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" 来"},{"type":"element","tagName":"a","properties":{"href":"./custom-command"},"children":[{"type":"text","value":"自定义"}]},{"type":"text","value":",在这里我们使用内置的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal.split"}]},{"type":"text","value":" 命令。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注意,当绑定的 Command 在注册时也指定了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"label"}]},{"type":"text","value":" 属性时,注册菜单项的 label 默认不会生效"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN018sreiD26Jd2EQc1RI_!!6000000007641-2-tps-2409-1510.png","alt":"Split Terminal"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"子菜单分组","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AD%90%E8%8F%9C%E5%8D%95%E5%88%86%E7%BB%84","ariaLabel":"子菜单分组 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"子菜单分组"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当注册的菜单较多时,我们可能希望将一些类似操作的子菜单与其他菜单间隔起来,可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" 属性来为子菜单分组。具体来说,就是为这些"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"类似操作"}]},{"type":"text","value":"的菜单使用相同的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" 值即可。这里我们使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry.registerMenuItems"}]},{"type":"text","value":" 来注册更多子菜单。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.remove'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search.next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0142Ey531JAY0aEEurA_!!6000000000988-2-tps-2409-1510.png","alt":"More MenuItems"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"注册二级子菜单","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E4%BA%8C%E7%BA%A7%E5%AD%90%E8%8F%9C%E5%8D%95","ariaLabel":"注册二级子菜单 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册二级子菜单"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于同类型的菜单,除了使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" 来将它们分组之外,还可以将其注册为"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"二级子菜单"}]},{"type":"text","value":",当子菜单较多时,使用二级菜单能有效的改善用户体验。例如我们希望将 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"搜索"}]},{"type":"text","value":" 以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"搜索下一个匹配项"}]},{"type":"text","value":" 都注册为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"搜索"}]},{"type":"text","value":" 的二级菜单。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" searchSubMenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal/search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.remove'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'搜索'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      submenu"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" searchSubMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"searchSubMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search.next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01uVgEDb1CnICqwllsD_!!6000000000125-2-tps-2208-1527.png","alt":"submenu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"反注册菜单或者菜单项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%8D%E6%B3%A8%E5%86%8C%E8%8F%9C%E5%8D%95%E6%88%96%E8%80%85%E8%8F%9C%E5%8D%95%E9%A1%B9","ariaLabel":"反注册菜单或者菜单项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"反注册菜单或者菜单项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 也提供了反注册菜单或者菜单项的功能,如果你不需要界面上的某些按钮,可以反注册掉它们。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"core 内部会预先注册了一些菜单,如:帮助;也为这些菜单预先配置了菜单项,如: 帮助 > 切换开发人员工具。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" 中提供了两个方法: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"text","value":"; 前者用来删除某个菜单,后者用来删除某个菜单的菜单项:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" menuItemId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"比如我们想删除帮助菜单项,可以使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarHelpMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果我们想删除帮助菜单中的切换开发人员功能,我们需要先查到这个菜单项的 id,一般来说就是该菜单要执行的 command 的 id:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarHelpMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'electron.toggleDevTools'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"core 内部注册的菜单你可以通过关键字 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"text","value":" 搜索到,比如 electron-basic 里注册的菜单项在这儿:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/36846886d9cbeee47ac17e745576fb0d99f1f423/packages/electron-basic/src/browser/index.ts#L159","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"packages/electron-basic/src/browser/index.ts#L159"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"使用图标菜单","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E5%9B%BE%E6%A0%87%E8%8F%9C%E5%8D%95","ariaLabel":"使用图标菜单 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用图标菜单"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了自定义菜单,你还可以选择使用图标菜单,它是以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"icon"}]},{"type":"text","value":" 图标的形式来显示菜单项。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01NnQNDA1JaCKpvk6lA_!!6000000001044-0-tps-720-217.jpg","alt":"submenu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"使用方式","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F","ariaLabel":"使用方式 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用方式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先需要通过"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"自定义视图"}]},{"type":"text","value":"的方式来自定义顶部 toolbar 的渲染器,见 "},{"type":"element","tagName":"a","properties":{"href":"./custom-view"},"children":[{"type":"text","value":"自定义插槽"}]},{"type":"text","value":" 。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后引入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":""}]},{"type":"text","value":" 组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IconMenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar/lib/browser/menu-bar.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Custom menu bar component.\n * Add a logo in here, and keep\n * opensumi's original menubar.\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MenuBarView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IconMenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" 里调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"menuRegistry"}]},{"type":"text","value":" 提供的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"text","value":" 方法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"往 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId.IconMenubarContext"}]},{"type":"text","value":" 这个 context 上注册菜单项即可"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  menus"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"IconMenubarContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REDO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'up'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_icon_menubar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNDO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'down'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_icon_menubar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注意: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"iconClass"}]},{"type":"text","value":" 为必填,否则无法展示图标"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其中 group 字段会自动帮你分组,在不同组之间会以分隔符 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" 区分开"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-menu.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-menu","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"注册自定义菜单","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95","ariaLabel":"注册自定义菜单 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册自定义菜单"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注册自定义菜单,常见的有两种模式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"注册新的菜单项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"向已有的菜单项注册子菜单"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 提供了自定义菜单能力,基于 OpenSumi 的 "},{"type":"element","tagName":"a","properties":{"href":"../../develop/basic-design/contribution-point"},"children":[{"type":"text","value":"Contribution"}]},{"type":"text","value":" 机制,实现 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" ,调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"menuRegistry"}]},{"type":"text","value":" 提供的方法即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registerMenus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menus"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 注册新的菜单项"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    item"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PartialBy"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IMenubarItem"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'id'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 向已有的菜单项注册子菜单"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    item"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuItem "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" ISubmenuItem "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" IInternalComponentMenuItem\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"注册新的菜单项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E6%96%B0%E7%9A%84%E8%8F%9C%E5%8D%95%E9%A1%B9","ariaLabel":"注册新的菜单项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册新的菜单项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"例如我们希望注册一个新的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"终端"}]},{"type":"text","value":" 菜单项,并希望它展示在第一项,调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry.registerMenuBarItem"}]},{"type":"text","value":", 同时传入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"order: 0"}]},{"type":"text","value":" 表示其定位在第一项。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01AMrUFm1E5RVxMZ417_!!6000000000300-2-tps-3808-2414.png","alt":"Menu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"向已有的菜单项注册子菜单","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%91%E5%B7%B2%E6%9C%89%E7%9A%84%E8%8F%9C%E5%8D%95%E9%A1%B9%E6%B3%A8%E5%86%8C%E5%AD%90%E8%8F%9C%E5%8D%95","ariaLabel":"向已有的菜单项注册子菜单 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"向已有的菜单项注册子菜单"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们将"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"终端"}]},{"type":"text","value":"菜单项注册在了菜单栏的第一项,但它还没有子菜单,点击后没有任何反应,我们需要再为其注册一组子菜单。调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry"}]},{"type":"text","value":" 的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"text","value":" 可以注册单个菜单项,也可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"text","value":" 方法来批量注册多个子菜单项。\n菜单点击后需要执行某些操作,在这个例子中,我们希望点击后拆分终端,需要为其绑定一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":","},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" 也一样可以通过实现 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"CommandContribution"}]},{"type":"text","value":" 来"},{"type":"element","tagName":"a","properties":{"href":"./custom-command"},"children":[{"type":"text","value":"自定义"}]},{"type":"text","value":",在这里我们使用内置的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"terminal.split"}]},{"type":"text","value":" 命令。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注意,当绑定的 Command 在注册时也指定了 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"label"}]},{"type":"text","value":" 属性时,注册菜单项的 label 默认不会生效"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN018sreiD26Jd2EQc1RI_!!6000000007641-2-tps-2409-1510.png","alt":"Split Terminal"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"子菜单分组","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AD%90%E8%8F%9C%E5%8D%95%E5%88%86%E7%BB%84","ariaLabel":"子菜单分组 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"子菜单分组"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"当注册的菜单较多时,我们可能希望将一些类似操作的子菜单与其他菜单间隔起来,可以使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" 属性来为子菜单分组。具体来说,就是为这些"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"类似操作"}]},{"type":"text","value":"的菜单使用相同的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" 值即可。这里我们使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registry.registerMenuItems"}]},{"type":"text","value":" 来注册更多子菜单。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.remove'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search.next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i1/O1CN0142Ey531JAY0aEEurA_!!6000000000988-2-tps-2409-1510.png","alt":"More MenuItems"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"注册二级子菜单","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B3%A8%E5%86%8C%E4%BA%8C%E7%BA%A7%E5%AD%90%E8%8F%9C%E5%8D%95","ariaLabel":"注册二级子菜单 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"注册二级子菜单"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于同类型的菜单,除了使用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"group"}]},{"type":"text","value":" 来将它们分组之外,还可以将其注册为"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"二级子菜单"}]},{"type":"text","value":",当子菜单较多时,使用二级菜单能有效的改善用户体验。例如我们希望将 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"搜索"}]},{"type":"text","value":" 以及 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"搜索下一个匹配项"}]},{"type":"text","value":" 都注册为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"搜索"}]},{"type":"text","value":" 的二级菜单。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" searchSubMenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal/search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'终端'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" order"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"terminalMenuBarId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_split'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.remove'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_clear'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      label"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'搜索'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'3_search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      submenu"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" searchSubMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"searchSubMenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'terminal.search.next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01uVgEDb1CnICqwllsD_!!6000000000125-2-tps-2208-1527.png","alt":"submenu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"反注册菜单或者菜单项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%8D%E6%B3%A8%E5%86%8C%E8%8F%9C%E5%8D%95%E6%88%96%E8%80%85%E8%8F%9C%E5%8D%95%E9%A1%B9","ariaLabel":"反注册菜单或者菜单项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"反注册菜单或者菜单项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 也提供了反注册菜单或者菜单项的功能,如果你不需要界面上的某些按钮,可以反注册掉它们。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"core 内部会预先注册了一些菜单,如:帮助;也为这些菜单预先配置了菜单项,如: 帮助 > 切换开发人员工具。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" 中提供了两个方法: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"text","value":"; 前者用来删除某个菜单,后者用来删除某个菜单的菜单项:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IMenuRegistry"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" MenuId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" menuItemId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"void"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"abstract"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IDisposable"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"比如我们想删除帮助菜单项,可以使用:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuId"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarHelpMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果我们想删除帮助菜单中的切换开发人员功能,我们需要先查到这个菜单项的 id,一般来说就是该菜单要执行的 command 的 id:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  MenuId\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/menu/next'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" terminalMenuBarId "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'menubar/terminal'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MyMenusContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterMenuItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarHelpMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'electron.toggleDevTools'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"core 内部注册的菜单你可以通过关键字 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItem"}]},{"type":"text","value":" 搜索到,比如 electron-basic 里注册的菜单项在这儿:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/36846886d9cbeee47ac17e745576fb0d99f1f423/packages/electron-basic/src/browser/index.ts#L159","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"packages/electron-basic/src/browser/index.ts#L159"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"使用图标菜单","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E5%9B%BE%E6%A0%87%E8%8F%9C%E5%8D%95","ariaLabel":"使用图标菜单 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用图标菜单"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"除了自定义菜单,你还可以选择使用图标菜单,它是以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"icon"}]},{"type":"text","value":" 图标的形式来显示菜单项。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN01NnQNDA1JaCKpvk6lA_!!6000000001044-0-tps-720-217.jpg","alt":"submenu"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"使用方式","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F","ariaLabel":"使用方式 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用方式"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先需要通过"},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"自定义视图"}]},{"type":"text","value":"的方式来自定义顶部 toolbar 的渲染器,见 "},{"type":"element","tagName":"a","properties":{"href":"./custom-view"},"children":[{"type":"text","value":"自定义插槽"}]},{"type":"text","value":" 。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后引入 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":""}]},{"type":"text","value":" 组件"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IconMenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar/lib/browser/menu-bar.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"/**\n * Custom menu bar component.\n * Add a logo in here, and keep\n * opensumi's original menubar.\n */"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"MenuBarView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"IconMenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"text","value":" 里调用 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"menuRegistry"}]},{"type":"text","value":" 提供的 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"text","value":" 方法。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"往 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId.IconMenubarContext"}]},{"type":"text","value":" 这个 context 上注册菜单项即可"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  menus"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenuItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"IconMenubarContext"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REDO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'up'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'1_icon_menubar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      command"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNDO"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'down'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      group"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'2_icon_menubar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"注意: "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"iconClass"}]},{"type":"text","value":" 为必填,否则无法展示图标"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"其中 group 字段会自动帮你分组,在不同组之间会以分隔符 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"|"}]},{"type":"text","value":" 区分开"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-menu.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/custom-readonly-mode/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/custom-readonly-mode/page-data.json
        index 92b9695f..0b042422 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/custom-readonly-mode/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/custom-readonly-mode/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在一些特殊场景中,集成方希望可以在只读的模式下运行,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"分享"}]},{"type":"text","value":" 功能,被分享的人只能看而不能写、不能使用某些命令、不能进行文件的创建和删除等这类需求。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"那么我们可以利用 OpenSumi 的自定义模块能力,通过在模块当中禁用掉某些功能和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" 命令来达到只读模式的效果。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"自定义一个-readonly-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA-readonly-module","ariaLabel":"自定义一个 readonly module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义一个 readonly module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先自定义一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" 模块:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ... more contribution"}]},{"type":"text","value":"\n    ReadOnlyContribution\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后实现一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadOnlyContribution"}]},{"type":"text","value":",并将其导入到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" 的 providers:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TabBarToolbarContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ReadOnlyContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TabBarToolbarContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNREGISTER_COMMAND"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 禁用文件保存"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_CURRENT"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_ALL"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 禁用文件操作"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_UNTITLED_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DELETE_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"RENAME_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"COPY_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"CUT_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"PASTE_FILE"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 卸载 command 逻辑"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"of"}]},{"type":"text","value":" ReadOnlyContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNREGISTER_COMMAND"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" cmd "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"typeof"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" command"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"cmd"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 只读模式下去掉 文件 和 编辑 两个 menu 菜单"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarFileMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarEditMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ToolbarRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/common/common.command.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/08cfc13779d0830fcd8663ca1e9dd4bc92218171/packages/core-browser/src/menu/next/menu-id.ts#L2","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId"}]}]},{"type":"text","value":" 可在源码中查看,只需按照代码所示的位置卸载掉 command 或 menu 即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"集成模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90%E6%A8%A1%E5%9D%97","ariaLabel":"集成模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"集成模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"最后在集成时引入,以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/ide-startup"}]},{"type":"text","value":" 案例为例子,参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/a46a78a56b25b17f7f36ddc3f340d1720311559a/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"index.ts#L12"}]},{"type":"text","value":" 时,导入到 modules 字段即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// other modules"}]},{"type":"text","value":"\n    ReadonlyModule\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 还可以在默认配置这里设置 editor.forceReadOnly 为 true"}]},{"type":"text","value":"\n  defaultPreferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'editor.forceReadOnly'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"自此你便完成了简单的只读模式的支持。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-readonly-mode.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在一些特殊场景中,集成方希望可以在只读的模式下运行,例如 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"分享"}]},{"type":"text","value":" 功能,被分享的人只能看而不能写、不能使用某些命令、不能进行文件的创建和删除等这类需求。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"那么我们可以利用 OpenSumi 的自定义模块能力,通过在模块当中禁用掉某些功能和 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]},{"type":"text","value":" 命令来达到只读模式的效果。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"自定义一个-readonly-module","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA-readonly-module","ariaLabel":"自定义一个 readonly module permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"自定义一个 readonly module"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先自定义一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" 模块:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"extends"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"BrowserModule"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  providers "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// ... more contribution"}]},{"type":"text","value":"\n    ReadOnlyContribution\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后实现一个 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadOnlyContribution"}]},{"type":"text","value":",并将其导入到 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"ReadonlyModule"}]},{"type":"text","value":" 的 providers:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TabBarToolbarContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ReadOnlyContribution"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"MenuContribution"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" CommandContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TabBarToolbarContribution "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"protected"}]},{"type":"text","value":" menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"static"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNREGISTER_COMMAND"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Set"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 禁用文件保存"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_CURRENT"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_URI"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SAVE_ALL"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 禁用文件操作"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"EDITOR_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_UNTITLED_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"DELETE_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"RENAME_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"COPY_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"CUT_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"PASTE_FILE"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerCommands"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"commands"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" CommandRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 卸载 command 逻辑"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"for"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"of"}]},{"type":"text","value":" ReadOnlyContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"UNREGISTER_COMMAND"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" cmd "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"typeof"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"==="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'string'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" command "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" command"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n      commands"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"unregisterCommand"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"cmd"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerMenus"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IMenuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 只读模式下去掉 文件 和 编辑 两个 menu 菜单"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarFileMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"MenuId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenubarEditMenu"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerToolbarItems"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ToolbarRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FILE"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"removeMenubarItem"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FILE_COMMANDS"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"NEW_FOLDER"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"id"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"更多的 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/main/packages/core-browser/src/common/common.command.ts","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"Command"}]}]},{"type":"text","value":" 和 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/core/blob/08cfc13779d0830fcd8663ca1e9dd4bc92218171/packages/core-browser/src/menu/next/menu-id.ts#L2","target":"_self","rel":["nofollow"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"MenuId"}]}]},{"type":"text","value":" 可在源码中查看,只需按照代码所示的位置卸载掉 command 或 menu 即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"集成模块","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9B%86%E6%88%90%E6%A8%A1%E5%9D%97","ariaLabel":"集成模块 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"集成模块"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"最后在集成时引入,以 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"opensumi/ide-startup"}]},{"type":"text","value":" 案例为例子,参考 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup/blob/a46a78a56b25b17f7f36ddc3f340d1720311559a/src/browser/index.ts#L12","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"index.ts#L12"}]},{"type":"text","value":" 时,导入到 modules 字段即可。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// other modules"}]},{"type":"text","value":"\n    ReadonlyModule\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 还可以在默认配置这里设置 editor.forceReadOnly 为 true"}]},{"type":"text","value":"\n  defaultPreferences"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","string-property","property"]},"children":[{"type":"text","value":"'editor.forceReadOnly'"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"true"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"自此你便完成了简单的只读模式的支持。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-readonly-mode.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/custom-reporter/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/custom-reporter/page-data.json
        index d65e2908..bab75df3 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/custom-reporter/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/custom-reporter/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-reporter","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内置提供了埋点上报,给集成方提供一些关键 IDE 数据的指标、一方核心插件的一些关键性能等数据。集成方可自行将这些数据上报到自己的平台。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"前端模块使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E7%AB%AF%E6%A8%A1%E5%9D%97%E4%BD%BF%E7%94%A8","ariaLabel":"前端模块使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前端模块使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IReporterService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IReporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporterService\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" timer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"time"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REPORT_NAME"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ACTIVE_EXTENSION"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    timer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"timeEnd"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"extension"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensionId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"后端模块使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%8E%E7%AB%AF%E6%A8%A1%E5%9D%97%E4%BD%BF%E7%94%A8","ariaLabel":"后端模块使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"后端模块使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IReporterService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IReporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporterService\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REPORT_NAME"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ACTIVE_EXTENSION"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" extension"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensionId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件中使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E4%B8%AD%E4%BD%BF%E7%94%A8","ariaLabel":"插件中使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件中使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" reporter "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" reporterTimer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" reporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"time"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"ts-load"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"func"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  reporterTimer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"timeEnd"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"ts-load"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   reporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"上报","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%B8%8A%E6%8A%A5","ariaLabel":"上报 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"上报"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"集成方通过替换内置 Provider 实现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  PointData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  PerformanceData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IReporter\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Reporter"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IReporter"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PerformanceData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PointData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\ninjector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Reporter\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"附录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%99%84%E5%BD%95","ariaLabel":"附录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"附录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"框架内打点记录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%86%E6%9E%B6%E5%86%85%E6%89%93%E7%82%B9%E8%AE%B0%E5%BD%95","ariaLabel":"框架内打点记录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"框架内打点记录"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"name"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"类型"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"msg"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"备注"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件激活时间埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"loadExtensionMain"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"加载插件 main js 时间埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCompletionItems"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"model.uri.toString()"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"获取 completion 时间埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"data.extra.extDuration 可以获取在插件进程中的耗时"}]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"channelReconnect"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"重连埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"measure"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"阶段名"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"启动各个阶段生命周期执行的时间,其中 msg 格式主要包括:1. 各模块生命周期时长: ${ModuleConstructName}.(initialize | onStart | onDidStart) 2. 所有模块生命周期时长:Contributions.(initialize | onStart | start)3. 框架状态ready耗时:Framework.ready 4. 各个类内方法执行的时长:${ClassConstructName}.${methodName}"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideHover"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDefinition"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideTypeDefinition"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideFoldingRanges"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentColors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideColorPresentations"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentHighlights"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideLinks"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideReferences"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideImplementation"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCodeActions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideRenameEdits"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideSignatureHelp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCodeLenses"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"resolveCodeLens"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用次数"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideOnTypeFormattingEdits"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideSelectionRanges"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-reporter.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-reporter","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 内置提供了埋点上报,给集成方提供一些关键 IDE 数据的指标、一方核心插件的一些关键性能等数据。集成方可自行将这些数据上报到自己的平台。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"前端模块使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%89%8D%E7%AB%AF%E6%A8%A1%E5%9D%97%E4%BD%BF%E7%94%A8","ariaLabel":"前端模块使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"前端模块使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IReporterService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IReporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporterService\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" timer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"time"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REPORT_NAME"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ACTIVE_EXTENSION"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    timer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"timeEnd"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"extension"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensionId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"后端模块使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%8E%E7%AB%AF%E6%A8%A1%E5%9D%97%E4%BD%BF%E7%94%A8","ariaLabel":"后端模块使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"后端模块使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" IReporterService "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-node'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Autowired"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"IReporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n  reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporterService\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"async"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n    reporterService"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"REPORT_NAME"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"ACTIVE_EXTENSION"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" extension"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"extensionId"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件中使用","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E4%B8%AD%E4%BD%BF%E7%94%A8","ariaLabel":"插件中使用 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件中使用"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" reporter "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'sumi'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"activate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" reporterTimer "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" reporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"time"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"ts-load"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"func"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  reporterTimer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"timeEnd"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","template-string"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"ts-load"}]},{"type":"element","tagName":"span","properties":{"className":["token","template-punctuation","string"]},"children":[{"type":"text","value":"`"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"deactivate"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n   reporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"dispose"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"上报","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%B8%8A%E6%8A%A5","ariaLabel":"上报 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"上报"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"集成方通过替换内置 Provider 实现:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  PointData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  PerformanceData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  IReporter\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Injectable"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"Reporter"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"IReporter"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PerformanceData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" data"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" PointData"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\ninjector"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"addProviders"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  token"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" IReporter"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  useClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Reporter\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"附录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%99%84%E5%BD%95","ariaLabel":"附录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"附录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"框架内打点记录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A1%86%E6%9E%B6%E5%86%85%E6%89%93%E7%82%B9%E8%AE%B0%E5%BD%95","ariaLabel":"框架内打点记录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"框架内打点记录"}]},{"type":"text","value":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},{"type":"element","tagName":"table","properties":{},"children":[{"type":"element","tagName":"thead","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"name"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"类型"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"msg"}]},{"type":"element","tagName":"th","properties":{},"children":[{"type":"text","value":"备注"}]}]}]},{"type":"element","tagName":"tbody","properties":{},"children":[{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"activateExtension"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"插件激活时间埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"loadExtensionMain"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"extensionId"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"加载插件 main js 时间埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCompletionItems"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"model.uri.toString()"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"获取 completion 时间埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"data.extra.extDuration 可以获取在插件进程中的耗时"}]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"channelReconnect"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"重连埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"measure"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"阶段名"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"启动各个阶段生命周期执行的时间,其中 msg 格式主要包括:1. 各模块生命周期时长: ${ModuleConstructName}.(initialize | onStart | onDidStart) 2. 所有模块生命周期时长:Contributions.(initialize | onStart | start)3. 框架状态ready耗时:Framework.ready 4. 各个类内方法执行的时长:${ClassConstructName}.${methodName}"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]},{"type":"element","tagName":"td","properties":{},"children":[]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideHover"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDefinition"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideTypeDefinition"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideFoldingRanges"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentColors"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideColorPresentations"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentHighlights"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideLinks"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideReferences"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideDocumentSymbols"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideImplementation"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCodeActions"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideRenameEdits"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideSignatureHelp"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideCodeLenses"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"resolveCodeLens"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"point"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"无"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用次数"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideOnTypeFormattingEdits"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]},{"type":"element","tagName":"tr","properties":{},"children":[{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"provideSelectionRanges"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"performance"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"uri extname"}]},{"type":"element","tagName":"td","properties":{},"children":[{"type":"text","value":"调用耗时埋点"}]}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-reporter.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/custom-view/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/custom-view/page-data.json
        index 839080ce..7226f52b 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/custom-view/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/custom-view/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-view","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 视图基于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"插槽机制"}]},{"type":"text","value":" 设计,整个 Layout 本身是一个大的 React 组件,组件会将视图划分为若干个插槽。如 OpenSumi 默认提供的布局组件就会将视图划分为如下图所示的插槽模板:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01jVb1Nv1n4XHe0H2wG_!!6000000005036-2-tps-1714-1374.png","alt":"默认插槽模板"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插槽用于组件视图的挂载,每个插槽会消费一个如下数据结构的数据:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentsInfo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Array"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  views"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewContainerOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"View"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 无关选项已被隐藏"}]},{"type":"text","value":"\n  component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ComponentType"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"插槽渲染器"}]},{"type":"text","value":" 决定了这个数据的消费方式。默认情况下,视图会从上而下平铺布局。在侧边栏、底部栏位置,插槽渲染器默认为支持折叠展开和切换的 TabBar 组件。除了侧边栏区域会通过手风琴的方式支持多个子视图外,其余位置默认只会消费 views 的第一个视图。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"数据的提供方为视图配置 LayoutConfig,其数据结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" defaultConfig"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" LayoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"left"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-scm'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-extension-manager'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"视图的 Token 与真实的 React 组件通过 ComponentContribution 进行注册关联。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Search "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./search.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SearchContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SEARCH_CONTAINER_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Search"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下面以在 MenuBar 右侧增加一个 ToolBar 组件为例,介绍如何定制 Layout。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN014ixdVn1OainoMihzF_!!6000000001722-2-tps-1424-882.png","alt":"视图效果"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"完整代码案例见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/custom-toolbar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom View"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"视图注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%A7%86%E5%9B%BE%E6%B3%A8%E5%86%8C","ariaLabel":"视图注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"视图注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先我们需要将 ToolBar 组件进行注册,关联到一个字符串 Token "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"test-toolbar"}]},{"type":"text","value":" 上:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"TestToolbar"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"style"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      lineHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'35px'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      padding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'0 20px'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      textAlign"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'center'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      backgroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'var(--kt-menubar-background)'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    I'm a Test ToolBar\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TestContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TestToolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'测试'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"底部插槽注册注意事项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BA%95%E9%83%A8%E6%8F%92%E6%A7%BD%E6%B3%A8%E5%86%8C%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9","ariaLabel":"底部插槽注册注意事项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"底部插槽注册注意事项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你使用的是底部插槽 (SlotLocation.bottom), 该插槽的样式为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"overflow: hidden;"}]},{"type":"text","value":",如果你需要实现滚动的页面效果,请使用一层 div 进行包裹并设置 overflow 属性。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"BottomView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"style"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" auto"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"App"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"/>"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"视图消费","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%A7%86%E5%9B%BE%E6%B6%88%E8%B4%B9","ariaLabel":"视图消费 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"视图消费"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于该需求,支持视图的渲染有两种方案:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"替换顶部位置的插槽渲染器,支持左右平铺"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在布局组件上划出一个新的插槽位置,单独支持 ToolBar 注册"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"定制插槽渲染器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9A%E5%88%B6%E6%8F%92%E6%A7%BD%E6%B8%B2%E6%9F%93%E5%99%A8","ariaLabel":"定制插槽渲染器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"定制插槽渲染器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 SlotRendererContribution 替换顶部的 SlotRenderer,将默认的上下平铺模式改成横向的 flex 模式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"TopSlotRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  components"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"any"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" className"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" components "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tmp "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" components"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"map"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"item "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"views"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div style"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" display"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'flex'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" justifyContent"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'space-between'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"tmp"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"map"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Component"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Component key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SlotRendererContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TestToolbarSlotContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SlotRendererContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" SlotRendererRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerSlotRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TopSlotRenderer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"之后在视图配置里将 ToolBar 的视图传入顶部位置即可:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"增加插槽位置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A2%9E%E5%8A%A0%E6%8F%92%E6%A7%BD%E4%BD%8D%E7%BD%AE","ariaLabel":"增加插槽位置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"增加插槽位置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"增加插槽位置非常简单,只需要将 SlotRenderer 组件放入视图即可,Layout 设计的很灵活,你可以在任意位置插入这个渲染器。在本例中,可以选择在布局组件中增加该位置,或在 MenuBar 视图内增加该位置:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"LayoutComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BoxPanel direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"top-to-bottom\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BoxPanel direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"left-to-right\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer\n          color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"colors"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuBarBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"35"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"top\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 增加一个 Slot 插槽"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer\n          color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"colors"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuBarBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"35"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"customAction\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"BoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"BoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 或在 MenuBar 视图内增加"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" MenuBarMixToolbarAction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MenuBarMixToolbarActionProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"clx"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenuBarWrapper"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"className"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"customAction\""}]},{"type":"text","value":" flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'initial'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"增加好插槽位置后,在视图配置里增加对应位置及相应的视图 Token 即可:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  customAction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"扩展阅读","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%89%A9%E5%B1%95%E9%98%85%E8%AF%BB","ariaLabel":"扩展阅读 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"扩展阅读"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般情况下,使用上述示例的方式就可以完成常见的布局定制需求支持,但是对于一些需要拖拽改变尺寸功能、视图切换功能的定制场景,直接使用原生 HTML 开始写的话会比较复杂,且交互不一致,OpenSumi 提供了可用于搭建布局的几类基础组件:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"布局基础组件\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"BoxPanel 组件,普通 Flex 布局组件,支持不同方向的 Flex 布局"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"SplitPanel 组件,支持鼠标拖拽改变尺寸的 BoxPanel"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"插槽渲染器实现组件\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Accordion 组件,手风琴组件,支持 SplitPanel 的所有能力,同时支持子视图面板的折叠展开控制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"TabBar 组件,多 Tab 管理组件,支持视图的激活、折叠、展开、切换,支持 Tab 拖拽更换位置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"TabPanel 组件,Tab 渲染组件,侧边栏为 Panel Title + Accordion,底部栏为普通 React 视图"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"具体的组件使用方式可以参考组件的类型声明。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-view.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/custom-view","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 视图基于 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"插槽机制"}]},{"type":"text","value":" 设计,整个 Layout 本身是一个大的 React 组件,组件会将视图划分为若干个插槽。如 OpenSumi 默认提供的布局组件就会将视图划分为如下图所示的插槽模板:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i3/O1CN01jVb1Nv1n4XHe0H2wG_!!6000000005036-2-tps-1714-1374.png","alt":"默认插槽模板"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"插槽用于组件视图的挂载,每个插槽会消费一个如下数据结构的数据:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"type"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentsInfo"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"Array"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  views"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" View"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  options"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"?"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ViewContainerOptions"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"interface"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"View"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 无关选项已被隐藏"}]},{"type":"text","value":"\n  component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"ComponentType"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"any"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"插槽渲染器"}]},{"type":"text","value":" 决定了这个数据的消费方式。默认情况下,视图会从上而下平铺布局。在侧边栏、底部栏位置,插槽渲染器默认为支持折叠展开和切换的 TabBar 组件。除了侧边栏区域会通过手风琴的方式支持多个子视图外,其余位置默认只会消费 views 的第一个视图。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"数据的提供方为视图配置 LayoutConfig,其数据结构如下:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" defaultConfig"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" LayoutConfig "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"left"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-explorer'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-scm'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-extension-manager'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-debug'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"视图的 Token 与真实的 React 组件通过 ComponentContribution 进行注册关联。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" Search "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'./search.view'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SearchContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"SEARCH_CONTAINER_ID"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      iconClass"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"getIcon"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      title"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"localize"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'search.title'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" Search"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      priority"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"9"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"下面以在 MenuBar 右侧增加一个 ToolBar 组件为例,介绍如何定制 Layout。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://img.alicdn.com/imgextra/i4/O1CN014ixdVn1OainoMihzF_!!6000000001722-2-tps-1424-882.png","alt":"视图效果"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"完整代码案例见:"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/opensumi-modue-samples/tree/main/modules/custom-toolbar","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"Custom View"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"视图注册","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%A7%86%E5%9B%BE%E6%B3%A8%E5%86%8C","ariaLabel":"视图注册 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"视图注册"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"首先我们需要将 ToolBar 组件进行注册,关联到一个字符串 Token "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"test-toolbar"}]},{"type":"text","value":" 上:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"TestToolbar"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"style"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      lineHeight"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'35px'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      padding"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'0 20px'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      textAlign"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'center'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      backgroundColor"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'var(--kt-menubar-background)'"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    I'm a Test ToolBar\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"ComponentContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TestContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ComponentContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"register"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n          id"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" TestToolbar"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n          name"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'测试'"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n        containerId"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"底部插槽注册注意事项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%BA%95%E9%83%A8%E6%8F%92%E6%A7%BD%E6%B3%A8%E5%86%8C%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9","ariaLabel":"底部插槽注册注意事项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"底部插槽注册注意事项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果你使用的是底部插槽 (SlotLocation.bottom), 该插槽的样式为 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"overflow: hidden;"}]},{"type":"text","value":",如果你需要实现滚动的页面效果,请使用一层 div 进行包裹并设置 overflow 属性。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"tsx"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-tsx"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"BottomView"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","attr-name"]},"children":[{"type":"text","value":"style"}]},{"type":"element","tagName":"span","properties":{"className":["token","script","language-javascript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","script-punctuation","punctuation"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n      overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" auto"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":">"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n    "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"App"}]}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"/>"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","plain-text"]},"children":[{"type":"text","value":"\n  "}]},{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","tag"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":""}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"视图消费","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%A7%86%E5%9B%BE%E6%B6%88%E8%B4%B9","ariaLabel":"视图消费 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"视图消费"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"对于该需求,支持视图的渲染有两种方案:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"替换顶部位置的插槽渲染器,支持左右平铺"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在布局组件上划出一个新的插槽位置,单独支持 ToolBar 注册"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"定制插槽渲染器","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%AE%9A%E5%88%B6%E6%8F%92%E6%A7%BD%E6%B8%B2%E6%9F%93%E5%99%A8","ariaLabel":"定制插槽渲染器 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"定制插槽渲染器"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 SlotRendererContribution 替换顶部的 SlotRenderer,将默认的上下平铺模式改成横向的 flex 模式:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"TopSlotRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"props"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","builtin"]},"children":[{"type":"text","value":"string"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  components"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" ComponentRegistryInfo"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function-variable","function"]},"children":[{"type":"text","value":"any"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" className"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" components "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" tmp "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" components"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"map"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"item "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" item"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"views"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"component"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"!"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div style"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":" display"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'flex'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" justifyContent"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'space-between'"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"tmp"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"map"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"Component"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"Component key"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"index"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","decorator"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","at","operator"]},"children":[{"type":"text","value":"@"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"Domain"}]}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SlotRendererContribution"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"class"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"TestToolbarSlotContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"implements"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"SlotRendererContribution"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"registry"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" SlotRendererRegistry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    registry"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"registerSlotRenderer"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TopSlotRenderer"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"之后在视图配置里将 ToolBar 的视图传入顶部位置即可:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"text","value":"SlotLocation"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"top"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-menu-bar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"增加插槽位置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%A2%9E%E5%8A%A0%E6%8F%92%E6%A7%BD%E4%BD%8D%E7%BD%AE","ariaLabel":"增加插槽位置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"增加插槽位置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"增加插槽位置非常简单,只需要将 SlotRenderer 组件放入视图即可,Layout 设计的很灵活,你可以在任意位置插入这个渲染器。在本例中,可以选择在布局组件中增加该位置,或在 MenuBar 视图内增加该位置:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"function"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"LayoutComponent"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BoxPanel direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"top-to-bottom\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"BoxPanel direction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"left-to-right\""}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer\n          color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"colors"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuBarBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"35"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"top\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 增加一个 Slot 插槽"}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer\n          color"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"colors"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"menuBarBackground"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          defaultSize"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"35"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n          slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"customAction\""}]},{"type":"text","value":"\n        "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"BoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"BoxPanel"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 或在 MenuBar 视图内增加"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"export"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"const"}]},{"type":"text","value":" MenuBarMixToolbarAction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" React"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"element","tagName":"span","properties":{"className":["token","constant"]},"children":[{"type":"text","value":"FC"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MenuBarMixToolbarActionProps"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" props "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"=>"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"return"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"div className"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"clx"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"styles"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"MenuBarWrapper"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" props"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"className"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"MenuBar "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"text","value":"SlotRenderer slot"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"customAction\""}]},{"type":"text","value":" flex"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"1"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" overflow"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'initial'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n    "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"<"}]},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"/"}]},{"type":"text","value":"div"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":">"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"增加好插槽位置后,在视图配置里增加对应位置及相应的视图 Token 即可:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"ts"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-ts"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"renderApp"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n  customAction"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    modules"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"["}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'test-toolbar'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"]"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"..."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"扩展阅读","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%89%A9%E5%B1%95%E9%98%85%E8%AF%BB","ariaLabel":"扩展阅读 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"扩展阅读"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"一般情况下,使用上述示例的方式就可以完成常见的布局定制需求支持,但是对于一些需要拖拽改变尺寸功能、视图切换功能的定制场景,直接使用原生 HTML 开始写的话会比较复杂,且交互不一致,OpenSumi 提供了可用于搭建布局的几类基础组件:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"布局基础组件\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"BoxPanel 组件,普通 Flex 布局组件,支持不同方向的 Flex 布局"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"SplitPanel 组件,支持鼠标拖拽改变尺寸的 BoxPanel"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"插槽渲染器实现组件\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Accordion 组件,手风琴组件,支持 SplitPanel 的所有能力,同时支持子视图面板的折叠展开控制"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"TabBar 组件,多 Tab 管理组件,支持视图的激活、折叠、展开、切换,支持 Tab 拖拽更换位置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"TabPanel 组件,Tab 渲染组件,侧边栏为 Panel Title + Accordion,底部栏为普通 React 视图"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"具体的组件使用方式可以参考组件的类型声明。"}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图"},"parent":{"relativePath":"integrate/universal-integrate-case/custom-view.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/page-data/zh/docs/integrate/universal-integrate-case/offline-deployment/page-data.json b/page-data/zh/docs/integrate/universal-integrate-case/offline-deployment/page-data.json
        index 11d0c7d4..87933367 100644
        --- a/page-data/zh/docs/integrate/universal-integrate-case/offline-deployment/page-data.json
        +++ b/page-data/zh/docs/integrate/universal-integrate-case/offline-deployment/page-data.json
        @@ -1 +1 @@
        -{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/offline-deployment","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 天然支持离线部署场景,只需要将内部的一些网络资源如(icon、onig-wasm)等通过浏览器端的配置替换成内网的资源地址即可"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"需要修改的配置项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9C%80%E8%A6%81%E4%BF%AE%E6%94%B9%E7%9A%84%E9%85%8D%E7%BD%AE%E9%A1%B9","ariaLabel":"需要修改的配置项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"需要修改的配置项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器端的配置见文档 "},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-config#%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AB%AF%E9%85%8D%E7%BD%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"如何自定义浏览器端配置"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"new ClientAPP"}]},{"type":"text","value":" 时传入配置参数"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 导入本地 icon 资源, 不使用 cdn 版本, 导入后需要设置 useCdnIcon 为 false"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/style/icon.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// other ..."}]},{"type":"text","value":"\n  useCdnIcon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 见上"}]},{"type":"text","value":"\n  onigWasmUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// onig wasm 文件"}]},{"type":"text","value":"\n  extensionBrowserStyleSheet"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    componentUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 配置插件 browser 层的 component 样式文件"}]},{"type":"text","value":"\n    iconfontUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 配置插件 browser 层的 iconfont 样式文件"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"可以从以下方式获取到所需的资源","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%AF%E4%BB%A5%E4%BB%8E%E4%BB%A5%E4%B8%8B%E6%96%B9%E5%BC%8F%E8%8E%B7%E5%8F%96%E5%88%B0%E6%89%80%E9%9C%80%E7%9A%84%E8%B5%84%E6%BA%90","ariaLabel":"可以从以下方式获取到所需的资源 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"可以从以下方式获取到所需的资源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"onigWasmUri"}]},{"type":"text","value":": 从 "},{"type":"element","tagName":"a","properties":{"href":"https://g.alicdn.com/kaitian/vscode-oniguruma-wasm/1.5.1/onig.wasm","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://g.alicdn.com/kaitian/vscode-oniguruma-wasm/1.5.1/onig.wasm"}]},{"type":"text","value":" 下载"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"componentUri"}]},{"type":"text","value":": 从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules/@opensumi/ide-components/dist/index.css"}]},{"type":"text","value":" 获取"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"iconfontUri"}]},{"type":"text","value":": 从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules/@opensumi/ide-components/lib/icon/iconfont/iconfont.css"}]},{"type":"text","value":" 获取"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"将这些资源上传到内网环境,然后将内网资源地址填写到对应配置项即可"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"ide-startup-lite-插件本地化","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ide-startup-lite-%E6%8F%92%E4%BB%B6%E6%9C%AC%E5%9C%B0%E5%8C%96","ariaLabel":"ide startup lite 插件本地化 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"ide-startup-lite 插件本地化"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件资源","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E8%B5%84%E6%BA%90","ariaLabel":"插件资源 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件资源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ide-startup-lite"}]},{"type":"text","value":" 内插件为 CDN 引用方式,所有插件资源 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/lite-worker-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"lite-worker-extensions"}]},{"type":"text","value":" 已打包输出"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"代码修改","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%A3%E7%A0%81%E4%BF%AE%E6%94%B9","ariaLabel":"代码修改 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"代码修改"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"需同步修改 Lite 内插件引入"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite/blob/main/web-lite/extension/utils.ts#L56","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"相关代码"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"diff"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-diff"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-diff"]},"children":[{"type":"text","value":"export async function getExtension(extensionId: string, version: string): Promise {\n"},{"type":"element","tagName":"span","properties":{"className":["token","unchanged"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" const [, extName] = extensionId.split('.')\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","deleted-sign","deleted"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","deleted"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"  const extPath = `gw.alipayobjects.com/os/marketplace/extension/${extensionId}-${version}/`;\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","inserted-sign","inserted"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","inserted"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":"  const extPath = `${your local path}`;\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","unchanged"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" const packageJSON = await fetch(`https://${extPath}package.json`)\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   .then((res) => res.json());\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" packageJSON.contributes = mergeContributes(\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   packageJSON.kaitianContributes,\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   packageJSON.contributes,\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" );\n"}]},{"type":"text","value":"\n..."}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署"},"parent":{"relativePath":"integrate/universal-integrate-case/offline-deployment.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        +{"componentChunkName":"component---node-modules-opensumi-gatsby-theme-site-templates-document-tsx","path":"/zh/docs/integrate/universal-integrate-case/offline-deployment","result":{"data":{"site":{"siteMetadata":{"title":"OpenSumi","githubUrl":"https://github.com/opensumi/core","docsUrl":"https://github.com/opensumi/docs","docs":[{"slug":"integrate/quick-start","title":{"zh":"快速开始","en":"Quick Start"},"order":1},{"slug":"integrate/universal-integrate-case","title":{"zh":"常见集成场景","en":"Integrate Case"},"order":2},{"slug":"integrate/module-usage","title":{"zh":"模块使用","en":"Module Usage"},"order":3},{"slug":"integrate/extensions-usage","title":{"zh":"插件使用","en":"Extensions Usage"},"order":4},{"slug":"integrate/browser-extension","title":{"zh":"浏览器插件","en":"Browser Extension"},"order":5},{"slug":"develop/basic-design","title":{"zh":"基础设计","en":"Basic Design"},"order":4},{"slug":"develop/module-apis","title":{"zh":"模块 API","en":"Modules API"},"order":5},{"slug":"develop/sample","title":{"zh":"经典案例","en":"Sample"},"order":6},{"slug":"extension/develop","title":{"zh":"OpenSumi 插件开发","en":"Extension Develop"},"order":2},{"slug":"extension/interface","title":{"zh":"OpenSumi API","en":"OpenSumi API"},"order":3},{"slug":"extension/contributes","title":{"zh":"OpenSumi 贡献点","en":"OpenSumi Contribute Points"},"order":4},{"slug":"extension/vscode","title":{"zh":"VS Code 插件开发","en":"VS Code Extension Develop"},"order":5}]},"pathPrefix":""},"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"概览","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%A6%82%E8%A7%88","ariaLabel":"概览 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"概览"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"OpenSumi 天然支持离线部署场景,只需要将内部的一些网络资源如(icon、onig-wasm)等通过浏览器端的配置替换成内网的资源地址即可"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"需要修改的配置项","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%9C%80%E8%A6%81%E4%BF%AE%E6%94%B9%E7%9A%84%E9%85%8D%E7%BD%AE%E9%A1%B9","ariaLabel":"需要修改的配置项 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"需要修改的配置项"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"浏览器端的配置见文档 "},{"type":"element","tagName":"a","properties":{"href":"https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-config#%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AB%AF%E9%85%8D%E7%BD%AE","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"如何自定义浏览器端配置"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后在 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"new ClientAPP"}]},{"type":"text","value":" 时传入配置参数"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"typescript"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-typescript"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 导入本地 icon 资源, 不使用 cdn 版本, 导入后需要设置 useCdnIcon 为 false"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"'@opensumi/ide-core-browser/lib/style/icon.less'"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]},{"type":"text","value":"\n\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"new"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","class-name"]},"children":[{"type":"text","value":"ClientAPP"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// other ..."}]},{"type":"text","value":"\n  useCdnIcon"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"false"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 见上"}]},{"type":"text","value":"\n  onigWasmUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// onig wasm 文件"}]},{"type":"text","value":"\n  extensionBrowserStyleSheet"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"{"}]},{"type":"text","value":"\n    componentUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 配置插件 browser 层的 component 样式文件"}]},{"type":"text","value":"\n    iconfontUri"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":":"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"''"}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"// 配置插件 browser 层的 iconfont 样式文件"}]},{"type":"text","value":"\n  "},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"}"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":";"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h4","properties":{"id":"可以从以下方式获取到所需的资源","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%AF%E4%BB%A5%E4%BB%8E%E4%BB%A5%E4%B8%8B%E6%96%B9%E5%BC%8F%E8%8E%B7%E5%8F%96%E5%88%B0%E6%89%80%E9%9C%80%E7%9A%84%E8%B5%84%E6%BA%90","ariaLabel":"可以从以下方式获取到所需的资源 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"可以从以下方式获取到所需的资源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"onigWasmUri"}]},{"type":"text","value":": 从 "},{"type":"element","tagName":"a","properties":{"href":"https://g.alicdn.com/kaitian/vscode-oniguruma-wasm/1.5.1/onig.wasm","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"https://g.alicdn.com/kaitian/vscode-oniguruma-wasm/1.5.1/onig.wasm"}]},{"type":"text","value":" 下载"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"componentUri"}]},{"type":"text","value":": 从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules/@opensumi/ide-components/dist/index.css"}]},{"type":"text","value":" 获取"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"iconfontUri"}]},{"type":"text","value":": 从 "},{"type":"element","tagName":"code","properties":{"className":["language-text"]},"children":[{"type":"text","value":"node_modules/@opensumi/ide-components/lib/icon/iconfont/iconfont.css"}]},{"type":"text","value":" 获取"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"将这些资源上传到内网环境,然后将内网资源地址填写到对应配置项即可"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"ide-startup-lite-插件本地化","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#ide-startup-lite-%E6%8F%92%E4%BB%B6%E6%9C%AC%E5%9C%B0%E5%8C%96","ariaLabel":"ide startup lite 插件本地化 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"ide-startup-lite 插件本地化"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"插件资源","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%8F%92%E4%BB%B6%E8%B5%84%E6%BA%90","ariaLabel":"插件资源 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"插件资源"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"ide-startup-lite"}]},{"type":"text","value":" 内插件为 CDN 引用方式,所有插件资源 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/lite-worker-extensions","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"lite-worker-extensions"}]},{"type":"text","value":" 已打包输出"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"代码修改","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BB%A3%E7%A0%81%E4%BF%AE%E6%94%B9","ariaLabel":"代码修改 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"代码修改"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"需同步修改 Lite 内插件引入"},{"type":"element","tagName":"a","properties":{"href":"https://github.com/opensumi/ide-startup-lite/blob/main/web-lite/extension/utils.ts#L56","target":"_self","rel":["nofollow"]},"children":[{"type":"text","value":"相关代码"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"diff"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-diff"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-diff"]},"children":[{"type":"text","value":"export async function getExtension(extensionId: string, version: string): Promise {\n"},{"type":"element","tagName":"span","properties":{"className":["token","unchanged"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" const [, extName] = extensionId.split('.')\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","deleted-sign","deleted"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","deleted"]},"children":[{"type":"text","value":"-"}]},{"type":"text","value":"  const extPath = `gw.alipayobjects.com/os/marketplace/extension/${extensionId}-${version}/`;\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","inserted-sign","inserted"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","inserted"]},"children":[{"type":"text","value":"+"}]},{"type":"text","value":"  const extPath = `${your local path}`;\n"}]},{"type":"element","tagName":"span","properties":{"className":["token","unchanged"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" const packageJSON = await fetch(`https://${extPath}package.json`)\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   .then((res) => res.json());\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" packageJSON.contributes = mergeContributes(\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   packageJSON.kaitianContributes,\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":"   packageJSON.contributes,\n"},{"type":"element","tagName":"span","properties":{"className":["token","prefix","unchanged"]},"children":[{"type":"text","value":" "}]},{"type":"text","value":" );\n"}]},{"type":"text","value":"\n..."}]}]}]}],"data":{"quirksMode":false}},"tableOfContents":"","fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署"},"parent":{"relativePath":"integrate/universal-integrate-case/offline-deployment.zh.md"}},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/en/docs/integrate/overview"},"frontmatter":{"title":"Introduction","order":0}}},{"node":{"fields":{"slug":"/zh/docs/integrate/overview"},"frontmatter":{"title":"框架介绍","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/overview"},"frontmatter":{"title":"How To Develop Extension","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/overview"},"frontmatter":{"title":"如何开发插件","order":0}}},{"node":{"fields":{"slug":"/en/docs/extension/vscode/overview"},"frontmatter":{"title":"How To Start","order":0}}},{"node":{"fields":{"slug":"/zh/docs/extension/vscode/overview"},"frontmatter":{"title":"如何开始","order":0}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"Custom Config","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-config"},"frontmatter":{"title":"自定义配置","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/web"},"frontmatter":{"title":"Quick Start(Web)","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/web"},"frontmatter":{"title":"快速开始(Web)","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"Using 3-way view new interaction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/3-way-merge-editor"},"frontmatter":{"title":"使用 3-way 视图新交互","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"Collaboration Module","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/collaboration"},"frontmatter":{"title":"协同编辑模块","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/shortcuts-guard"},"frontmatter":{"title":"Shortcuts Guard","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/quick-start"},"frontmatter":{"title":"Quick Start","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/quick-start"},"frontmatter":{"title":"快速开始","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"Built-in Icons","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-icon"},"frontmatter":{"title":"内置图标","order":1}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/toolbar"},"frontmatter":{"title":"Toolbar","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-contribute"},"frontmatter":{"title":"How To Contribute","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-contribute"},"frontmatter":{"title":"如何贡献代码","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/overview"},"frontmatter":{"title":"Case Introduction","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/overview"},"frontmatter":{"title":"案例介绍","order":1}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"Core Idea","order":1}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-idea"},"frontmatter":{"title":"核心概念","order":1}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"Custom Menu","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-menu"},"frontmatter":{"title":"自定义菜单","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/electron"},"frontmatter":{"title":"Quick Start(Electron)","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/electron"},"frontmatter":{"title":"快速开始(Electron)","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/zh/docs/integrate/browser-extension/opensumi-devtools"},"frontmatter":{"title":"OpenSumi DevTools","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/web-extension"},"frontmatter":{"title":"Web Extensions","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/web-extension"},"frontmatter":{"title":"纯前端插件(Web Extensions)","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-event"},"frontmatter":{"title":"Event","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-command"},"frontmatter":{"title":"Built-in Command","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-command"},"frontmatter":{"title":"内置命令","order":2}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/menubars"},"frontmatter":{"title":"Menubars","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/how-to-design-module"},"frontmatter":{"title":"How to Design Modules","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/how-to-design-module"},"frontmatter":{"title":"如何设计模块","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/create-module"},"frontmatter":{"title":"Create Module","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/create-module"},"frontmatter":{"title":"创建模块","order":2}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"应用生命周期","order":2}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/lifecycle"},"frontmatter":{"title":"Application Lifecycle","order":2}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"Custom View","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-view"},"frontmatter":{"title":"自定义视图","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/quick-start/lite"},"frontmatter":{"title":"Quick Start(Pure Front End)","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/quick-start/lite"},"frontmatter":{"title":"快速开始(纯前端)","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"Basic Terminal Usage","order":3}}},{"node":{"fields":{"slug":"/zh/docs/integrate/module-usage/terminal-basic-usage"},"frontmatter":{"title":"如何使用终端","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/i18n"},"frontmatter":{"title":"i18n","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/built-in-component"},"frontmatter":{"title":"Built-in Component","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/built-in-component"},"frontmatter":{"title":"内置组件","order":3}}},{"node":{"fields":{"slug":"/en/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/zh/docs/extension/contributes/submenus"},"frontmatter":{"title":"SubMenus","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/module-samples"},"frontmatter":{"title":"Module Samples","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-samples"},"frontmatter":{"title":"模块开发案例","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"Use Contribution Point","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-contribution-point"},"frontmatter":{"title":"使用贡献点","order":3}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"Extension Mechanism","order":3}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/extension-mechanism"},"frontmatter":{"title":"插件机制","order":3}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"Custom Command","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-command"},"frontmatter":{"title":"自定义命令","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java Project Supporting Extensions","order":4}}},{"node":{"fields":{"slug":"/zh/docs/integrate/extensions-usage/language-for-java"},"frontmatter":{"title":"Java 项目配套插件","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/layout"},"frontmatter":{"title":"Layout","order":4}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/connection-mode"},"frontmatter":{"title":"Connection Mode","order":4}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/connection-mode"},"frontmatter":{"title":"通信模型","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/display-list"},"frontmatter":{"title":"Display List","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/display-list"},"frontmatter":{"title":"展示一个列表","order":4}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"Dependence Injector","order":4}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/dependence-injector"},"frontmatter":{"title":"依赖注入","order":4}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"Custom Keybinding","order":5}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-keybinding"},"frontmatter":{"title":"自定义快捷键","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/terminal"},"frontmatter":{"title":"Terminal","order":5}}},{"node":{"fields":{"slug":"/en/docs/extension/develop/view-isolate"},"frontmatter":{"title":"View Isolation Considerations","order":5}}},{"node":{"fields":{"slug":"/zh/docs/extension/develop/view-isolate"},"frontmatter":{"title":"视图隔离注意事项","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"Register and Use the service by DI","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/use-service-by-di"},"frontmatter":{"title":"通过 DI 注册并使用服务","order":5}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"Contribution Point Mechanism","order":5}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/contribution-point"},"frontmatter":{"title":"贡献点机制","order":5}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"Custom Tracking Reporter","order":6}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-reporter"},"frontmatter":{"title":"自定义埋点上报","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"Front-end and Back-end Connection Implementation","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/sample/connection-between-browser-and-node"},"frontmatter":{"title":"实现前后端通信","order":6}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"Core Modules","order":6}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/core-modules"},"frontmatter":{"title":"核心模块","order":6}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"Custom Read-only Mode","order":7}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-readonly-mode"},"frontmatter":{"title":"自定义只读模式","order":7}}},{"node":{"fields":{"slug":"/en/docs/develop/basic-design/connection"},"frontmatter":{"title":"Front and Back Communication","order":7}}},{"node":{"fields":{"slug":"/zh/docs/develop/basic-design/connection"},"frontmatter":{"title":"前后端通信","order":7}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"Custom Extension Marketplace","order":8}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypoint"},"frontmatter":{"title":"自定义插件市场镜像源","order":8}}},{"node":{"fields":{"slug":"/en/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"Offline Deployment","order":9}}},{"node":{"fields":{"slug":"/zh/docs/integrate/universal-integrate-case/offline-deployment"},"frontmatter":{"title":"离线部署","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"Custom Editor Component","order":9}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/custom-editor-component"},"frontmatter":{"title":"自定义编辑器组件","order":9}}},{"node":{"fields":{"slug":"/en/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Use Components","order":10}}},{"node":{"fields":{"slug":"/zh/docs/extension/interface/use-builtin-component"},"frontmatter":{"title":"Components","order":10}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/decoration"},"frontmatter":{"title":"Decoration Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/decoration"},"frontmatter":{"title":"装饰器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/editor"},"frontmatter":{"title":"Editor Mode","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/editor"},"frontmatter":{"title":"编辑器模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/layout"},"frontmatter":{"title":"Layout Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/layout"},"frontmatter":{"title":"布局模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/overlay"},"frontmatter":{"title":"Overlay Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/overlay"},"frontmatter":{"title":"浮层模块","order":null}}},{"node":{"fields":{"slug":"/en/docs/develop/module-apis/preference"},"frontmatter":{"title":"Preference Module","order":null}}},{"node":{"fields":{"slug":"/zh/docs/develop/module-apis/preference"},"frontmatter":{"title":"配置模块","order":null}}}]}},"pageContext":{"examples":[]}},"staticQueryHashes":["2870459043","3000541721"]}
        \ No newline at end of file
        diff --git a/sitemap/sitemap-0.xml b/sitemap/sitemap-0.xml
        index 62cef034..cd3bd246 100644
        --- a/sitemap/sitemap-0.xml
        +++ b/sitemap/sitemap-0.xml
        @@ -1 +1 @@
        -https://opensumi.com/en/docs/integrate/overviewdaily0.7https://opensumi.com/zh/docs/integrate/overviewdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-commanddaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-commanddaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-configdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-keybindingdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-configdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-keybindingdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypointdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypointdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-menudaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-menudaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-readonly-modedaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-readonly-modedaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-reporterdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-reporterdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-viewdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/offline-deploymentdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-viewdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/offline-deploymentdaily0.7https://opensumi.com/en/docs/integrate/quick-start/electrondaily0.7https://opensumi.com/zh/docs/integrate/quick-start/electrondaily0.7https://opensumi.com/en/docs/integrate/quick-start/litedaily0.7https://opensumi.com/zh/docs/integrate/quick-start/litedaily0.7https://opensumi.com/en/docs/integrate/quick-start/webdaily0.7https://opensumi.com/zh/docs/integrate/quick-start/webdaily0.7https://opensumi.com/en/docs/integrate/module-usage/3-way-merge-editordaily0.7https://opensumi.com/zh/docs/integrate/module-usage/3-way-merge-editordaily0.7https://opensumi.com/en/docs/integrate/module-usage/collaborationdaily0.7https://opensumi.com/zh/docs/integrate/module-usage/collaborationdaily0.7https://opensumi.com/en/docs/integrate/module-usage/terminal-basic-usagedaily0.7https://opensumi.com/zh/docs/integrate/module-usage/terminal-basic-usagedaily0.7https://opensumi.com/en/docs/integrate/extensions-usage/language-for-javadaily0.7https://opensumi.com/zh/docs/integrate/extensions-usage/language-for-javadaily0.7https://opensumi.com/en/docs/integrate/browser-extension/opensumi-devtoolsdaily0.7https://opensumi.com/zh/docs/integrate/browser-extension/opensumi-devtoolsdaily0.7https://opensumi.com/en/docs/integrate/browser-extension/shortcuts-guarddaily0.7https://opensumi.com/zh/docs/integrate/browser-extension/shortcuts-guarddaily0.7https://opensumi.com/en/docs/extension/overviewdaily0.7https://opensumi.com/zh/docs/extension/overviewdaily0.7https://opensumi.com/en/docs/extension/quick-startdaily0.7https://opensumi.com/zh/docs/extension/quick-startdaily0.7https://opensumi.com/en/docs/extension/web-extensiondaily0.7https://opensumi.com/zh/docs/extension/web-extensiondaily0.7https://opensumi.com/en/docs/extension/vscode/overviewdaily0.7https://opensumi.com/zh/docs/extension/vscode/overviewdaily0.7https://opensumi.com/en/docs/extension/interface/custom-editor-componentdaily0.7https://opensumi.com/zh/docs/extension/interface/i18ndaily0.7https://opensumi.com/en/docs/extension/interface/layoutdaily0.7https://opensumi.com/zh/docs/extension/interface/custom-editor-componentdaily0.7https://opensumi.com/en/docs/extension/interface/i18ndaily0.7https://opensumi.com/zh/docs/extension/interface/layoutdaily0.7https://opensumi.com/en/docs/extension/interface/terminaldaily0.7https://opensumi.com/zh/docs/extension/interface/terminaldaily0.7https://opensumi.com/en/docs/extension/interface/toolbardaily0.7https://opensumi.com/zh/docs/extension/interface/toolbardaily0.7https://opensumi.com/en/docs/extension/interface/use-builtin-componentdaily0.7https://opensumi.com/zh/docs/extension/interface/use-builtin-componentdaily0.7https://opensumi.com/en/docs/extension/interface/use-eventdaily0.7https://opensumi.com/zh/docs/extension/interface/use-eventdaily0.7https://opensumi.com/en/docs/extension/develop/built-in-commanddaily0.7https://opensumi.com/zh/docs/extension/develop/built-in-commanddaily0.7https://opensumi.com/en/docs/extension/develop/built-in-componentdaily0.7https://opensumi.com/en/docs/extension/develop/built-in-icondaily0.7https://opensumi.com/zh/docs/extension/develop/built-in-componentdaily0.7https://opensumi.com/zh/docs/extension/develop/built-in-icondaily0.7https://opensumi.com/en/docs/extension/develop/connection-modedaily0.7https://opensumi.com/zh/docs/extension/develop/connection-modedaily0.7https://opensumi.com/en/docs/extension/develop/view-isolatedaily0.7https://opensumi.com/zh/docs/extension/develop/view-isolatedaily0.7https://opensumi.com/en/docs/extension/contributes/menubarsdaily0.7https://opensumi.com/zh/docs/extension/contributes/menubarsdaily0.7https://opensumi.com/en/docs/extension/contributes/submenusdaily0.7https://opensumi.com/zh/docs/extension/contributes/submenusdaily0.7https://opensumi.com/en/docs/extension/contributes/toolbardaily0.7https://opensumi.com/zh/docs/extension/contributes/toolbardaily0.7https://opensumi.com/en/docs/develop/how-to-contributedaily0.7https://opensumi.com/en/docs/develop/how-to-design-moduledaily0.7https://opensumi.com/zh/docs/develop/how-to-contributedaily0.7https://opensumi.com/zh/docs/develop/how-to-design-moduledaily0.7https://opensumi.com/en/docs/develop/module-samplesdaily0.7https://opensumi.com/zh/docs/develop/module-samplesdaily0.7https://opensumi.com/en/docs/develop/sample/connection-between-browser-and-nodedaily0.7https://opensumi.com/zh/docs/develop/sample/connection-between-browser-and-nodedaily0.7https://opensumi.com/en/docs/develop/sample/create-moduledaily0.7https://opensumi.com/zh/docs/develop/sample/create-moduledaily0.7https://opensumi.com/en/docs/develop/sample/display-listdaily0.7https://opensumi.com/zh/docs/develop/sample/display-listdaily0.7https://opensumi.com/en/docs/develop/sample/overviewdaily0.7https://opensumi.com/zh/docs/develop/sample/overviewdaily0.7https://opensumi.com/en/docs/develop/sample/use-contribution-pointdaily0.7https://opensumi.com/zh/docs/develop/sample/use-contribution-pointdaily0.7https://opensumi.com/zh/docs/develop/sample/use-service-by-didaily0.7https://opensumi.com/en/docs/develop/sample/use-service-by-didaily0.7https://opensumi.com/en/docs/develop/module-apis/decorationdaily0.7https://opensumi.com/zh/docs/develop/module-apis/decorationdaily0.7https://opensumi.com/en/docs/develop/module-apis/editordaily0.7https://opensumi.com/zh/docs/develop/module-apis/editordaily0.7https://opensumi.com/en/docs/develop/module-apis/overlaydaily0.7https://opensumi.com/en/docs/develop/module-apis/layoutdaily0.7https://opensumi.com/zh/docs/develop/module-apis/layoutdaily0.7https://opensumi.com/zh/docs/develop/module-apis/overlaydaily0.7https://opensumi.com/en/docs/develop/module-apis/preferencedaily0.7https://opensumi.com/zh/docs/develop/module-apis/preferencedaily0.7https://opensumi.com/en/docs/develop/basic-design/connectiondaily0.7https://opensumi.com/zh/docs/develop/basic-design/connectiondaily0.7https://opensumi.com/en/docs/develop/basic-design/contribution-pointdaily0.7https://opensumi.com/zh/docs/develop/basic-design/contribution-pointdaily0.7https://opensumi.com/en/docs/develop/basic-design/core-ideadaily0.7https://opensumi.com/zh/docs/develop/basic-design/core-ideadaily0.7https://opensumi.com/en/docs/develop/basic-design/core-modulesdaily0.7https://opensumi.com/zh/docs/develop/basic-design/core-modulesdaily0.7https://opensumi.com/en/docs/develop/basic-design/dependence-injectordaily0.7https://opensumi.com/zh/docs/develop/basic-design/dependence-injectordaily0.7https://opensumi.com/en/docs/develop/basic-design/extension-mechanismdaily0.7https://opensumi.com/zh/docs/develop/basic-design/extension-mechanismdaily0.7https://opensumi.com/en/docs/develop/basic-design/lifecycledaily0.7https://opensumi.com/zh/docs/develop/basic-design/lifecycledaily0.7https://opensumi.com/daily0.7https://opensumi.com/en/communitydaily0.7https://opensumi.com/zh/communitydaily0.7https://opensumi.com/en/independentdaily0.7https://opensumi.com/zh/independentdaily0.7https://opensumi.com/endaily0.7https://opensumi.com/zhdaily0.7
        \ No newline at end of file
        +https://opensumi.com/en/docs/integrate/overviewdaily0.7https://opensumi.com/zh/docs/integrate/overviewdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-commanddaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-commanddaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-configdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-configdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-keybindingdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-keybindingdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-marketplace-entrypointdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-marketplace-entrypointdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-menudaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-menudaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-readonly-modedaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-readonly-modedaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-reporterdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-reporterdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/custom-viewdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/custom-viewdaily0.7https://opensumi.com/en/docs/integrate/universal-integrate-case/offline-deploymentdaily0.7https://opensumi.com/zh/docs/integrate/universal-integrate-case/offline-deploymentdaily0.7https://opensumi.com/en/docs/integrate/quick-start/electrondaily0.7https://opensumi.com/zh/docs/integrate/quick-start/electrondaily0.7https://opensumi.com/en/docs/integrate/quick-start/litedaily0.7https://opensumi.com/zh/docs/integrate/quick-start/litedaily0.7https://opensumi.com/en/docs/integrate/quick-start/webdaily0.7https://opensumi.com/zh/docs/integrate/quick-start/webdaily0.7https://opensumi.com/en/docs/integrate/module-usage/3-way-merge-editordaily0.7https://opensumi.com/zh/docs/integrate/module-usage/3-way-merge-editordaily0.7https://opensumi.com/en/docs/integrate/module-usage/collaborationdaily0.7https://opensumi.com/zh/docs/integrate/module-usage/collaborationdaily0.7https://opensumi.com/en/docs/integrate/module-usage/terminal-basic-usagedaily0.7https://opensumi.com/zh/docs/integrate/module-usage/terminal-basic-usagedaily0.7https://opensumi.com/en/docs/integrate/extensions-usage/language-for-javadaily0.7https://opensumi.com/zh/docs/integrate/extensions-usage/language-for-javadaily0.7https://opensumi.com/en/docs/integrate/browser-extension/opensumi-devtoolsdaily0.7https://opensumi.com/zh/docs/integrate/browser-extension/opensumi-devtoolsdaily0.7https://opensumi.com/en/docs/integrate/browser-extension/shortcuts-guarddaily0.7https://opensumi.com/zh/docs/integrate/browser-extension/shortcuts-guarddaily0.7https://opensumi.com/en/docs/extension/overviewdaily0.7https://opensumi.com/zh/docs/extension/overviewdaily0.7https://opensumi.com/en/docs/extension/quick-startdaily0.7https://opensumi.com/zh/docs/extension/quick-startdaily0.7https://opensumi.com/en/docs/extension/web-extensiondaily0.7https://opensumi.com/zh/docs/extension/web-extensiondaily0.7https://opensumi.com/en/docs/extension/vscode/overviewdaily0.7https://opensumi.com/zh/docs/extension/vscode/overviewdaily0.7https://opensumi.com/en/docs/extension/interface/custom-editor-componentdaily0.7https://opensumi.com/zh/docs/extension/interface/custom-editor-componentdaily0.7https://opensumi.com/en/docs/extension/interface/i18ndaily0.7https://opensumi.com/zh/docs/extension/interface/i18ndaily0.7https://opensumi.com/en/docs/extension/interface/layoutdaily0.7https://opensumi.com/zh/docs/extension/interface/layoutdaily0.7https://opensumi.com/en/docs/extension/interface/terminaldaily0.7https://opensumi.com/zh/docs/extension/interface/terminaldaily0.7https://opensumi.com/en/docs/extension/interface/toolbardaily0.7https://opensumi.com/zh/docs/extension/interface/toolbardaily0.7https://opensumi.com/en/docs/extension/interface/use-builtin-componentdaily0.7https://opensumi.com/zh/docs/extension/interface/use-builtin-componentdaily0.7https://opensumi.com/en/docs/extension/interface/use-eventdaily0.7https://opensumi.com/zh/docs/extension/interface/use-eventdaily0.7https://opensumi.com/en/docs/extension/develop/built-in-commanddaily0.7https://opensumi.com/zh/docs/extension/develop/built-in-commanddaily0.7https://opensumi.com/en/docs/extension/develop/built-in-componentdaily0.7https://opensumi.com/zh/docs/extension/develop/built-in-componentdaily0.7https://opensumi.com/en/docs/extension/develop/built-in-icondaily0.7https://opensumi.com/zh/docs/extension/develop/built-in-icondaily0.7https://opensumi.com/en/docs/extension/develop/connection-modedaily0.7https://opensumi.com/zh/docs/extension/develop/connection-modedaily0.7https://opensumi.com/en/docs/extension/develop/view-isolatedaily0.7https://opensumi.com/zh/docs/extension/develop/view-isolatedaily0.7https://opensumi.com/en/docs/extension/contributes/menubarsdaily0.7https://opensumi.com/en/docs/extension/contributes/submenusdaily0.7https://opensumi.com/zh/docs/extension/contributes/menubarsdaily0.7https://opensumi.com/zh/docs/extension/contributes/submenusdaily0.7https://opensumi.com/en/docs/extension/contributes/toolbardaily0.7https://opensumi.com/zh/docs/extension/contributes/toolbardaily0.7https://opensumi.com/en/docs/develop/how-to-contributedaily0.7https://opensumi.com/zh/docs/develop/how-to-contributedaily0.7https://opensumi.com/en/docs/develop/how-to-design-moduledaily0.7https://opensumi.com/zh/docs/develop/how-to-design-moduledaily0.7https://opensumi.com/en/docs/develop/module-samplesdaily0.7https://opensumi.com/zh/docs/develop/module-samplesdaily0.7https://opensumi.com/en/docs/develop/sample/connection-between-browser-and-nodedaily0.7https://opensumi.com/zh/docs/develop/sample/connection-between-browser-and-nodedaily0.7https://opensumi.com/en/docs/develop/sample/create-moduledaily0.7https://opensumi.com/zh/docs/develop/sample/create-moduledaily0.7https://opensumi.com/en/docs/develop/sample/display-listdaily0.7https://opensumi.com/zh/docs/develop/sample/display-listdaily0.7https://opensumi.com/en/docs/develop/sample/overviewdaily0.7https://opensumi.com/zh/docs/develop/sample/overviewdaily0.7https://opensumi.com/en/docs/develop/sample/use-contribution-pointdaily0.7https://opensumi.com/zh/docs/develop/sample/use-contribution-pointdaily0.7https://opensumi.com/en/docs/develop/sample/use-service-by-didaily0.7https://opensumi.com/zh/docs/develop/sample/use-service-by-didaily0.7https://opensumi.com/en/docs/develop/module-apis/decorationdaily0.7https://opensumi.com/zh/docs/develop/module-apis/decorationdaily0.7https://opensumi.com/en/docs/develop/module-apis/editordaily0.7https://opensumi.com/zh/docs/develop/module-apis/editordaily0.7https://opensumi.com/en/docs/develop/module-apis/layoutdaily0.7https://opensumi.com/zh/docs/develop/module-apis/layoutdaily0.7https://opensumi.com/en/docs/develop/module-apis/overlaydaily0.7https://opensumi.com/zh/docs/develop/module-apis/overlaydaily0.7https://opensumi.com/en/docs/develop/module-apis/preferencedaily0.7https://opensumi.com/zh/docs/develop/module-apis/preferencedaily0.7https://opensumi.com/en/docs/develop/basic-design/connectiondaily0.7https://opensumi.com/zh/docs/develop/basic-design/connectiondaily0.7https://opensumi.com/en/docs/develop/basic-design/contribution-pointdaily0.7https://opensumi.com/zh/docs/develop/basic-design/contribution-pointdaily0.7https://opensumi.com/en/docs/develop/basic-design/core-ideadaily0.7https://opensumi.com/zh/docs/develop/basic-design/core-ideadaily0.7https://opensumi.com/en/docs/develop/basic-design/core-modulesdaily0.7https://opensumi.com/zh/docs/develop/basic-design/core-modulesdaily0.7https://opensumi.com/en/docs/develop/basic-design/dependence-injectordaily0.7https://opensumi.com/zh/docs/develop/basic-design/dependence-injectordaily0.7https://opensumi.com/en/docs/develop/basic-design/extension-mechanismdaily0.7https://opensumi.com/zh/docs/develop/basic-design/extension-mechanismdaily0.7https://opensumi.com/zh/docs/develop/basic-design/lifecycledaily0.7https://opensumi.com/en/docs/develop/basic-design/lifecycledaily0.7https://opensumi.com/daily0.7https://opensumi.com/en/communitydaily0.7https://opensumi.com/zh/communitydaily0.7https://opensumi.com/en/independentdaily0.7https://opensumi.com/zh/independentdaily0.7https://opensumi.com/endaily0.7https://opensumi.com/zhdaily0.7
        \ No newline at end of file
        diff --git a/zh/docs/extension/contributes/toolbar/index.html b/zh/docs/extension/contributes/toolbar/index.html
        index de6d499a..1d223629 100644
        --- a/zh/docs/extension/contributes/toolbar/index.html
        +++ b/zh/docs/extension/contributes/toolbar/index.html
        @@ -278,6 +278,7 @@ 

        // browser/index.ts
         import * as React from 'react';
         import { useEffect } from 'react';
        +import { commands } from 'kaitian-browser';
         
         export const CustomPopover = props => {
           useEffect(() => {
        @@ -290,15 +291,32 @@ 

        return ( <div style={{ width: 200, height: 200, padding: 10 }}> Hello {props.context?.name} + <button + onClick={() => { + commands.executeCommand('popup.testCommand'); + }} + > + 调用 Command + </button> </div> ); };

        这段代码中,可以从 props 获取一个 context 对象,context 可以通过插件 Node 端调用 actionHandler API 来动态更新。

        +

        Popover 可以从 props.context 中获取到 NodeJS 传入的状态,同时又可以使用 commands.executeCommand 来调用 NodeJS 中注册的 Commands。

        // node/index.ts
         export function activate() {
           const action = await kaitian.toolbar.getToolbarActionButtonHandle(
             'sample-start'
           );
        +
        +  kaitian.commands.registerCommand('popup.testCommand', () => {
        +    console.log('command executed');
        +  });
        +
        +  action.onClick(() => {
        +    action.showPopover();
        +  });
        +
           setInterval(() => {
             action.setContext({
               // 定时更新 context 值